数据库建模:从基础到最佳实践
多对多关系与附加信息
在数据库建模中,多对多关系往往需要一些额外信息来使其完整。很多时候,我们会看到模型两端用黑圈表示的多对多关系。要识别这类关系,就需要留意这种建模方式的实体。
动词短语(关系名称)
为了让父实体和子实体之间的关系能形成一个可读的句子,并融入实体名称和关系基数,我们会给关系命名,这些名称被称为动词短语。通常,名称是从父实体到子实体表达的,但也可以反向表达,甚至双向表达。动词短语一般位于模型中形成关系的线条附近。
关系命名应符合以下通用结构来读取整个关系:
父实体基数 – 父实体名称 – 关系名称 – 子实体基数 – 子实体名称
例如,“One contact is phoned using zero, one, or more phoneNumber(s).” 这个句子从语法上看可能不太完美,因为它提出了一个问题:一个联系人如何用零个电话号码被打电话?如果向非技术人员展示这个短语,更合理的表述是 “One contact can have either no phone number or one or more phoneNumbers.”
能够读取关系有助于我们发现明显的问题。比如,“One contactType classifies zero or one contact.” 从逻辑上看不太合理,因为要对所有联系人进行分类,就需要为每个联系人设置一个唯一的 ContactType 行,这显然不合理。正确的建模应该是 “One contactType classifies zero or more contacts.”
需要注意的是,
超级会员免费看
订阅专栏 解锁全文
1457

被折叠的 条评论
为什么被折叠?



