要选择属性,请确定具有以下性质的属性:
- 它们是重要的。
只包括对数据库用户有用的属性。
- 它们是直接的,而不是派生的。
可以从现有属性派生(例如:通过 SELECT 语句中的表达式)的属性不应该作为该模型的一部分。派生数据会使数据库的维护复杂化。
在设计的后阶段,您可以考虑添加派生属性以改进性能,但在此阶段,请将它们排除在外。有关如何改进数据库服务器的性能的信息,请参阅《GBase 8s 性能指南》。
- 它们是不可分解的。
属性只可以包含单个的值,而不能包含列表或重复组。必须将组合值分到个别的属性中。
- 它们包含同一类型的数据。
例如:在生日属性中,您只应输入日期值,而不应输入名称或电话号码。
属性的定义规则与列的那些定义规则相同。有关如何定义列的信息,请参阅对列进行约束。
将下列属性添加至电话号码簿示例以生成
图 1 所示的图:
- 将街道、城市、州和邮政编码添加至 address 实体。
- 将生日、电子邮件地址、周年纪念日和子女的名字添加至 name 实体。
- 将类型添加至 voice 实体以区分车载电话、家庭电话和办公室电话。语音电话号码只能与一种语音类型相关联。
- 将照管传真机的时间添加至 fax 实体。
- 将调制解调器是支持 9600 波特率、14400 波特率还是 28800 波特率添加至 modem 实体。