我正在尝试为当前设置找出最佳数据库模型:
管理员可以创建“客户产品”。这意味着客户可以附加/订阅的服务/产品。产品只需付出代价,或者产品订阅应该发送电子邮件的简单情况很容易在数据库中建模。
但客户产品的非常具体的后端代码怎么样?例如,一个产品可能具有非常特定的代码,用于检查不同数据库上的客户状态。如何在数据库中映射此关系,以便根据产品设置打开/关闭某些代码。
我处理它的直观方法是在CustomerProducts表上有一个字符串列,其中可以设置一组预定义的字符串,例如: “MyCustomCodeHandler”,然后代码将检查此字符串是否存在以执行它。但对我来说,它并不像是数据库和代码之间真正的关系。
答案 0 :(得分:1)
数据是数据,而代码是代码。我不建议在数据库中存储代码。
如果您需要允许客户使用相关代码创建产品类型(面向对象的“类型”),我会选择以与部署其他代码相同的方式部署该代码。
自定义代码还可以引用存储在数据库中的自定义数据。我选择为每个产品子类型创建一个依赖表,并将特定于类型的列放在那里。此子类型表与通用产品表之间的关系是一对一的。也就是说,子类型表中的主键也是通用产品表的外键。