mysql - 动态一对多数据库设计 -

标签 mysql database database-design relational-database database-schema

我有 2 个表,例如:并且我正在使用 mysql

<强>1。产品

enter image description here

<强>2。模板

enter image description here

现在,1 个产品可以有多个与其关联的模板。我可以通过创建如下映射表来实现:

产品模板

enter image description here

现在,根据某些动态条件,我需要为产品所服务的每个请求选择一个模板:

条件如

  1. 如果请求来自区域 x,则为产品 1 选择模板 2。
  2. 如果请求来自区域 y,则为产品 1 选择模板 1。

我的数据库中有多个区域。明天,如果我想添加另一个条件,该条件只能通过更改数据库来完成。我应该遵循什么设计来通过可扩展的数据库设计打开。

最佳答案

您可以使用通用连接表并添加类型,而不是product_id + template_id表,例如:

template_id  external_id  type
1            1            'product'
1            2            'product'
1            1            'user'

然后,您可以在此表中添加您将来想要的类型。您只需根据类型重写联接即可。

关于mysql - 动态一对多数据库设计 -,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32475679/

相关文章:

数据库架构 : How the relationship can be designed between user, 文件和文件夹?

php - 谷歌图和 PHP

php - 将 MySQL 数据标记为 'read'

sql - 存储过程 : get 3 values from a table and save them to another table

database - 大数据——存储与查询

mysql - 什么时候创建第二个数据库?

mysql - 检查 MySQL 函数中是否存在一行

php - 一切都很顺利,除非它给了我一个真实的结果并且没有任何改变

c# - 如何在 Entity Framework POCO 类中表示外键

mysql - 在同一个表中同时拥有主键和外键