如果存在带有属性列表(名字,姓氏,中间名,部门等)的对象(例如雇员)的集合,则需要在rdms表中将其建模为一个键/值对每行,每位员工多行。例如:该表为3列:EmployeeID,FieldName,FieldValue。
对于那些可选字段(例如,中间名),是否最好跳过该行,或者将NULL填充为FieldValue列?
我觉得跳过它可以节省空间,但是将其设置为NULL会更干净,因为它可以保证每个员工的行数相同。
哪种是最常见的模式?
答案 0 :(得分:0)
如果要填写值,则最好使用定义明确的表。因此,不要仅仅因为您没有NULL
值而输入它们。
实体-键-值模型的优点在于,您可以轻松添加新的键-而不必影响没有这些键的其他实体。
在这样的模型中,我会说“中间名”的NULL
值与缺少的“中间名”不同:
NULL
值表示已请求但未提供中间名-本质上,“我有一个中间名,但不会告诉您。”