Database design 数据库设计-创建一个只有两个值的表,或者将其设置为包含这两个值之一的列
这更多的是一个数据库设计问题,我很好奇,当只有两组值时,专业的数据库管理员会如何处理——下面举一个例子,说明两种设计方案,您会选择哪种方案;为什么 情景一 或者 情景二Database design 数据库设计-创建一个只有两个值的表,或者将其设置为包含这两个值之一的列,database-design,Database Design,这更多的是一个数据库设计问题,我很好奇,当只有两组值时,专业的数据库管理员会如何处理——下面举一个例子,说明两种设计方案,您会选择哪种方案;为什么 情景一 或者 情景二 方法2更好。您的开发人员可以使用第二个表格版税类型进行查找,如果您想添加新类型或编辑/更新版税类型的标签,您也可以轻松地进行查找。 如果在版税类型中编辑/修改标签,则只需在一个位置进行更改,并且表格发票将不受影响 编辑: 关于数据库设计,我通常会考虑三件事: 添加有多容易:在第一种方法中,如果您没有发票记录,您将无法添加新的版税
方法2更好。您的开发人员可以使用第二个表格版税类型进行查找,如果您想添加新类型或编辑/更新版税类型的标签,您也可以轻松地进行查找。 如果在版税类型中编辑/修改标签,则只需在一个位置进行更改,并且表格发票将不受影响
编辑:
关于数据库设计,我通常会考虑三件事:
添加有多容易:在第一种方法中,如果您没有发票记录,您将无法添加新的版税类型。我的意思是,如果你想添加一个新的类型,比如说半固定的未来发票。如果没有半固定类型的发票,您将无法执行此操作
更新有多容易假设您想将版税类型更新为“FIX”。如果您遵循第一种方法,则需要在多行中更新它。
现在删除有多容易如果要从版税类型中删除类型,那么根据第一种方法,您必须在表上运行update语句,并将特定版税类型设置为NULL 在事务数据库上,2更好。1可用于数据仓库系统。我会使用后者,毫无疑问
同意。此外,您还可以利用外键约束确保插入的值符合可用的值集。感谢您花时间解释,@Habib.OSU。
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