mae*_*jed 3 mysql sql database database-design
我有一个关于数据库架构的问题.
我们正在建立一个CMS.有很多字段会预先填充选择.例如,客户的信用状态可以是"好","差","未知"或"存款".该项目的规范是这些预先填充的选择是动态的,管理员可以通过后端添加新值.所以我需要将这些值存储在数据库中.
我正在努力在两种方法之间做出决定
1)为每种列表都有一个表格.示例可以是list_CrediStatus,list_Branches,list_Markets等表.
优点是表格不是很大并且它们彼此分开.因此,一个表上的数据和查询负载可能不会影响其他表?缺点是会有很多.也许30?并且每个表需要一个查询.
2)有两张桌子.有一个描述表,您可以在其中定义所有不同的列表名称(list_CreditStatus,list_Branches等).另一个表包含所有列表的所有值以及将每行链接到描述表中的标识符的外键.
优点是较少的表,1个查询和统一格式.缺点可能在于性能.需要对此表进行大量查询.它将有许多行和大量数据.
有人有建议吗?我倾向于选项2.如果这没有意义,请告诉我.写清楚是一个难题.
谢谢,杰德
Ken*_*wns 10
总是把东西放在一张桌子里,而不像单独的桌子里的东西.这意味着你选择选项1.记住:基于字段名称的肤浅相似性并不意味着它们就像是事物.
单表解决方案具有诱人的吸引力,因为它看起来更简单,但事实并非如此.保持这些分离所需的代码变得非常复杂.
另外,您无法使用正确的外键.How do you say一个ORDER有一个列CREDIT_STATUS引用列表表,不允许有人放入血型(或其他)值?
| 归档时间: |
|
| 查看次数: |
1201 次 |
| 最近记录: |