MySQL非常适合于支持网站内的客户资源管理(customer resource management,CRM)系统。它已经是很多Web网站不可分割的一部分了,而且其价格水平也是无人能敌的。此外在动态网站里,很可能已经存在相当数量的CRM数据有待发掘。
在做一家电话公司SAP实施组管理员的过程中,我逐渐精通了其卓越的CRM工具包。我了解到CRM中大约有90%的工作是系统配置实施和维护,以满足用户不断变化的要求。一名CRM的开发人员必须精通过程和结构的设计。现在就让我们来讨论一下,你在使用MySQL创建一个可升级的高性能CRM系统时所要经历的过程。
为MySQL设计CRM解决方案
CRM数据库很复杂:你的用户表格会链接到你的联系方法表格上,后者又链接到你的地址和机构的表格上,这两个表格又链接到你的事物表格上,而这个事物表格又链接到你的目录表格上,等等。对于某些关系,你需要创建复杂的复合索引。对于其他的关系,你可能只需要简单的索引,或者根本就不需要。你实现里的更新和删除可能会也可能不会被层叠。
这就意味着,你需要极其熟悉MySQL里可用的调整方法。但是在你能够进行调整之前,你就需要设计一个CRM过程,依靠它来利用这些调整方法。
逻辑和数据流
正如你能够在图A里看到的那样,你可以将MyISAM表格作为报告类型数据的源来使用。这非常有用,因为在你只是简单地查询数据库时,ISAM表格将是个闪电般快速的数据源。ISAM的缺点是,表格文件自身可能会崩溃,而对其数据的更新很容易就会导致这样的问题。
图A
要解决ISAM的不稳定性,你可以使用InnoDB表格来添加、更新和删除数据表格里的记录。InnoDB引擎是事务性(transactional),所以如果更新失败,那么数据就会退回到更改之前的状态。InnoDB在参照上更加完整,这样数据的更新就不会违反表格之间的任何关系法则。
上面的图表中所没有反映出来的东西是,你应该随时备份你的数据。在这样的情况下,ISAM表格里所保存的都是贵重的数据。这些表格都是你应该备份的东西。你可以在InnoDB表格里获得同样的数据,但是ISAM的表格更适合于备份过程的查询。
对InnoDB表格的恢复操作也是出于同样的原因——它们更适合于更新(例如参照的完整性、速度、稳定性等等),而且它们将被自动地与任何有待添加/更新的操作进行同步。如果InnoDB表格不幸崩溃了,那么就能够利用ISAM的数据来重建表格,这就是为什么要将这个过程像这样分割的最好原因了。毕竟,冗余就等于安全。
要注意,在图A里连接表格A和表格B的线条显示其是一个单向的同步过程。它涉及报告(Report)表格(表格A、ISAM)的锁定,然后将更新(Update)表格(表格B、InnoDB)推回给表格A。这一过程发生得很快,因为在这一点上不会有或者很少会有数据的确认。MyISAM在设计上就不支持它。
收缩包装的CRM
当然,不是所有的CRM都是设计用来和MySQL一起工作的。它们通常都会支持MySQL,但是它们没有利用到其特有的性能和设计特性。例如SAP、PeopleSoft以及微软CRM都没有为MySQL提供任何优化的特性。这就是为什么它们都是根据甲骨文和微软的RDBMS设计范例所创建的原因了。
还是有很多CRM工具包都是围绕LAMP(Linux/Apache/MySQL/PHP)这一基础来设计的。这些通常都是开放源代码的项目,与之相关的好处以及花费是可想而知的。由于CRM几乎总是涉及很多软件的自定义以及商业过程的分析,所以它相当乐意参与到开放源代码的开发工作中来。开放源代码所提供的设计更新间隔正是系统同企业实际操作进行同步所需要的,至少是在尽可能地同步。
用于MySQL的几种CRM工具包
下面这些CRM工具包已经为同MySQL一起使用进行了优化:
- Flamingo Internet Navigators
- OnmiStarLive
- Anteil
独特的设计范例
如果你正在参与使用MySQL创建CRM解决方案的工作,那么你就需要将技术同商业技巧有效地结合起来。将系统里的接口同真实世界里的接口相匹配,需要你对MySQL独特设计范例里可用的性能增强特性有一个深入的了解。理解MySQL的事物以及非事物表格类型将是理解这个范例的关键,但是诸如索引和关键字的合成(key composition)也有其作用。
MySQL能够被用作常用的大型CRM工具包的后端数据库,但是这些工具包往往不能够利用MySQL的优化特性以及设计范例。但是,很多开放源代码的工具包的确利用了MySQL特有的特性,或者它们能够在源代码这一层次被调整以利用这些特性。这就让MySQL成为了你CRM项目的一个理想选择。

如何解决Linux系统中出现的进程卡顿问题当我们在使用Linux操作系统时,有时候会遇到进程卡顿的情况,这给我们的工作和使用带来了不便。进程卡顿可能是由于各种原因引起的,如资源不足、死锁、IO阻塞等。在本文中,我们将讨论一些解决进程卡顿问题的方法和技巧。首先,我们需要明确进程卡顿的原因。可以通过以下几种方式来查找问题所在:使用系统监控工具:可以使用像top、

深入了解PHP底层开发原理:内存优化和资源管理在PHP开发中,内存优化和资源管理是非常重要的因素之一。良好的内存管理和资源利用能够提升应用程序的性能和稳定性。本文将着重介绍PHP底层开发中的内存优化和资源管理原理,并提供一些示例代码来帮助读者更好地理解和应用。PHP内存管理原理PHP的内存管理是通过引用计数器(referencecounting)来实现的。

如何通过编写实用代码来掌握PHP8扩展的使用引言:PHP(HypertextPreprocessor)是一种广泛使用的开源脚本语言,常用于编写Web应用程序。随着PHP8的发布,新的扩展和功能使得开发者能够更好地满足业务需求和提高代码效率。本文将介绍如何通过编写实用代码来掌握PHP8扩展的使用。一、了解PHP8扩展PHP8引入了许多新的扩展,如FFI、

如何使用Layui开发一个支持文件上传和下载的资源管理系统引言:随着互联网的发展,数据资源的管理已经成为一项重要的任务。无论是企业内部的文档管理,还是个人的文件存储,都需要一个高效且易于使用的资源管理系统。Layui是一款轻量级的前端框架,具有简洁明了的设计以及丰富的组件库,非常适合用来进行资源管理系统的开发。本文将介绍如何使用Layui开发一个支持文

轻松掌握PyQT安装技巧:详细教程分享PyQT是一种流行的PythonGUI库,它提供了丰富的功能和工具,帮助开发者快速而轻松地创建用户界面。PyQT的安装过程可能对于初学者来说有些困惑,本文将详细介绍PyQT的安装方法,并附带具体的代码示例,以帮助读者轻松掌握这一技巧。安装Python和PIP在开始安装PyQT之前,首先需要确保电脑上已经安装了Pytho

学习Spring必备:掌握常用注解的使用方法,需要具体代码示例引言:Spring框架是目前广泛应用于Java企业级应用开发的开源框架之一。在Spring的学习过程中,掌握常用注解的使用方法是非常重要的。本文将介绍几个在Spring开发中常用的注解,并结合代码示例详细说明它们的作用和用法。一、@Component@Component是Spring框架中最

高效利用Java中的try-with-resources语句来管理各种资源在Java开发中,我们经常需要管理各种资源,比如数据库连接、文件流、网络连接等。为了确保这些资源在使用完毕后能够正确地关闭和释放,通常需要手动编写关闭资源的代码,以防止资源泄露和系统资源浪费。然而,Java在1.7版本中引入的try-with-resources语句,大大简化了这一过程

掌握基本数据类型常量的特点和用法,需要具体代码示例引言在编程语言中,常量是具有固定值的标识符,它们的值在定义时被设定,并且在程序的执行过程中不会被改变。对于基本数据类型常量,其特点和用法的掌握是编写高效、可读性强的代码的基础。本文将介绍四种基本数据类型常量的特点和用法,分别是整型常量、浮点型常量、字符常量和布尔常量。并通过具体代码示例来进一步解释。整型常量整


Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

AI Hentai Generator
Generate AI Hentai for free.

Hot Article

Hot Tools

SublimeText3 English version
Recommended: Win version, supports code prompts!

SAP NetWeaver Server Adapter for Eclipse
Integrate Eclipse with SAP NetWeaver application server.

WebStorm Mac version
Useful JavaScript development tools

SublimeText3 Linux new version
SublimeText3 Linux latest version

MinGW - Minimalist GNU for Windows
This project is in the process of being migrated to osdn.net/projects/mingw, you can continue to follow us there. MinGW: A native Windows port of the GNU Compiler Collection (GCC), freely distributable import libraries and header files for building native Windows applications; includes extensions to the MSVC runtime to support C99 functionality. All MinGW software can run on 64-bit Windows platforms.
