Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Database 使用用户创建的数据库条目映射代码的首选方法_Database_Relationship - Fatal编程技术网

Database 使用用户创建的数据库条目映射代码的首选方法

Database 使用用户创建的数据库条目映射代码的首选方法,database,relationship,Database,Relationship,我正在尝试为当前设置确定最佳数据库模型: 管理员可以创建“客户产品”。这意味着客户可以附加/订阅的服务/产品。简单的情况是,产品只需支付一个价格,或者产品订阅应该发送一封电子邮件,这很容易在数据库中建模 但是,对于客户产品来说,非常具体的后端代码又如何呢?例如,一个产品可能实现了非常特定的代码,用于检查不同数据库上的客户状态。如何在数据库中映射此关系,以便根据产品设置打开/关闭某些代码 我直观的处理方法是在CustomerProducts表上有一个字符串列,其中可以设置一组预定义的字符串,例如“

我正在尝试为当前设置确定最佳数据库模型:

管理员可以创建“客户产品”。这意味着客户可以附加/订阅的服务/产品。简单的情况是,产品只需支付一个价格,或者产品订阅应该发送一封电子邮件,这很容易在数据库中建模

但是,对于客户产品来说,非常具体的后端代码又如何呢?例如,一个产品可能实现了非常特定的代码,用于检查不同数据库上的客户状态。如何在数据库中映射此关系,以便根据产品设置打开/关闭某些代码


我直观的处理方法是在CustomerProducts表上有一个字符串列,其中可以设置一组预定义的字符串,例如“MyCustomCodeHandler”,然后代码将检查该字符串是否存在以执行它。但对我来说,数据库和代码之间并不是真正的关系。

数据就是数据,而代码就是代码。我不建议将代码存储在数据库中

如果您需要允许客户使用关联的代码创建产品类型(在面向对象的“类型”意义上),我会选择以与部署其他代码相同的方式部署该代码

自定义代码也可以引用存储在数据库中的自定义数据。我会选择为每个产品子类型创建一个依赖表,并将特定于类型的列放在其中。此子类型表与通用产品表之间的关系是一对一的。也就是说,子类型表中的主键也是通用产品表的外键