首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >CRM应用中的数据库表结构

CRM应用中的数据库表结构
EN

Stack Overflow用户
提问于 2016-05-30 12:38:25
回答 1查看 2K关注 0票数 0

我正在开发一个基于PHP & MySQL的小型客户关系管理应用程序。我遵循的是SaaS架构。单个代码库和每个客户端都有自己的数据库。

  • 记住,所有的联系信息都应该从CSV进口。
  • 我的目标是允许客户修改联系人表结构。我的意思是每个客户端都可以定义自己的表结构。

示例:

  • 来自摄影行业的客户喜欢收集客户信息如下: 姓名,地址,城市,州,国家,电话,电子邮件,whatsapp
  • 鉴于SEO行业的另一个客户,ike收集客户信息如下: 姓名,姓,地址,城市,州,国家,电话,电子邮件,网站,skype

什么是最适合所有需要的表结构。

我希望我已经清楚地解释了我的问题,如果你在理解我的问题时遇到任何困难,请评论,我会纠正的。

EN

回答 1

Stack Overflow用户

发布于 2016-05-30 13:12:30

允许客户端修改表结构带来了几个挑战,最不重要的是:如果他们想要更改其结构以添加或减去新的字段,会发生什么?如何添加验证代码?以及更复杂的安全问题..。

一个面向对象的数据库将是实现这个目标的好方法,但是您已经指出MySQL是一种需求,因此从体系结构的角度来处理这个问题的一种方法是有一个客户特定模式表,其中客户键映射到可以动态修改的特定表模式。

表单、元数据和相关的表操作可以存储在数据库中,以便动态生成输入字段和所需的输入字段。由于表模式不应该频繁地重新生成,所以这并不是额外的开销。

使用XML来表示模式,我曾经通过实现基于存储模式生成SQL代码和HTML表单的函数来实现类似的功能。添加或更改字段时,应用程序生成新的XML和关联的SQL,以便通过XSLT修改表。

例如:

代码语言:javascript
运行
复制
Schema       DBtoSchema( Database )
DataBase     SchematoDB( XML_Schema )
Schema       DBTabletoSchema( Table )
DBTable      SchemaToDBTable( XML_Schema )
SuccessCode  SchemaAddField( XML_Schema, FieldName, FieldType, FieldValidation)
SuccessCode  SchemaDeleteField( XML_Schema, FieldName)
SuccessCode  NewTable( Schema )
SQLCode      GenerateInsertSQL( Schema )
SQLCode      GenerateDeleteSQL( Schema )
HTMLCode     GenerateForm( Schema, xsltCode)
 ... and so on .....
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37525887

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档