这更像是一个数据库设计问题,我很好奇当只有两组值时,专业数据库管理员会如何处理 - 以下两个设计方案为例,你会选择哪一个;为什么?
情景一
table INVOICES
-------------------------------
id | royalty_fee | royalty_type
-------------------------------
1 | 15 | percentage
2 | 10.00 | fixed
1 | 25 | percentage
1 | 25.00 | fixed
...或
情景二
table INVOICES
----------------------------------
id | royalty_fee | royalty_type_id
----------------------------------
1 | 15 | 1
2 | 10.00 | 2
1 | 25 | 1
1 | 25.00 | 2
table ROYALTY_TYPES
-------------------------------
id | label
-------------------------------
1 | percentage
2 | fixed
答案 0 :(得分:7)
方法2更好。您的开发人员可以使用第二个表ROYALTY_TYPES进行查找,如果您想要添加新类型或编辑/更新ROYALTY_TYPES的标签,您也可以轻松完成。
如果您在ROYALTY_TYPES中编辑/修改标签,则只需要在一个地方进行更改,表INVOICES将不受影响
编辑:
我通常会在数据库设计方面寻找三件事:
添加是多么容易:在第一种方法中,如果您没有发票的记录,则无法添加新的版税类型。我的意思是,如果你想添加一个新类型,可以说HalfFixed用于将来的发票。如果没有获得HalfFixed类型的发票,您将无法执行此操作
更新有多容易让我们说如果你想更新版税类型固定为'FIX'。如果您遵循第一种方法,那么您将需要在多行中更新它。
删除是多么容易现在,如果要从“版税类型”中删除类型,那么根据您的第一种方法,您必须在表格上运行更新语句并设置特定版税键入为NULL。
答案 1 :(得分:2)
我会使用后者,毫无疑问。
答案 2 :(得分:1)
在事务性数据库中,2更好。 1可用于数据仓库系统。