我正在开发一个基于PHP & MySQL的小型客户关系管理应用程序。我遵循的是SaaS架构。单个代码库和每个客户端都有自己的数据库。
示例:
什么是最适合所有需要的表结构。
我希望我已经清楚地解释了我的问题,如果你在理解我的问题时遇到任何困难,请评论,我会纠正的。
发布于 2016-05-30 13:12:30
允许客户端修改表结构带来了几个挑战,最不重要的是:如果他们想要更改其结构以添加或减去新的字段,会发生什么?如何添加验证代码?以及更复杂的安全问题..。
一个面向对象的数据库将是实现这个目标的好方法,但是您已经指出MySQL是一种需求,因此从体系结构的角度来处理这个问题的一种方法是有一个客户特定模式表,其中客户键映射到可以动态修改的特定表模式。
表单、元数据和相关的表操作可以存储在数据库中,以便动态生成输入字段和所需的输入字段。由于表模式不应该频繁地重新生成,所以这并不是额外的开销。
使用XML来表示模式,我曾经通过实现基于存储模式生成SQL代码和HTML表单的函数来实现类似的功能。添加或更改字段时,应用程序生成新的XML和关联的SQL,以便通过XSLT修改表。
例如:
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 .....https://stackoverflow.com/questions/37525887
复制相似问题