为什么在 SERM (ERM) 建模中要求继承类型是关系类型的主键 (PK)?
Why is the type of inheritance required to be primary key (PK) for relationship types in SERM (ERM) modeling?
SERM 是 ERM 的扩展。
继承有两种,即依赖entities/relationships如何从上级实体继承主键:
- 对于从属 entity/relationship,外(继承)键成为主键(“PK”)的一部分。
- 对于从属 entity/relationship,外(继承)键不会成为主键(“FK”)的一部分。
现在,我知道依赖 ER 类型有多种选择,因为可以使用人工值作为主键(例如自动递增索引、代理键)。
但是,我不明白为什么要求关系类型始终使用外键作为其主键的一部分(继承类型 =“PK”)。为什么不能使用代理主键并将外键存储在关系类型的某些其他属性中?
显然,这个问题的答案很简单:关系类型通常没有自己的主键属性。
虽然这并不能解释禁止使用FK-继承,但它解释了为什么普遍使用PK-继承。
根据定义,由于关系对实体之间的关系建模,因此它拥有自己的主键属性没有意义(否则,它也将是一个实体)。
SERM 是 ERM 的扩展。
继承有两种,即依赖entities/relationships如何从上级实体继承主键:
- 对于从属 entity/relationship,外(继承)键成为主键(“PK”)的一部分。
- 对于从属 entity/relationship,外(继承)键不会成为主键(“FK”)的一部分。
现在,我知道依赖 ER 类型有多种选择,因为可以使用人工值作为主键(例如自动递增索引、代理键)。
但是,我不明白为什么要求关系类型始终使用外键作为其主键的一部分(继承类型 =“PK”)。为什么不能使用代理主键并将外键存储在关系类型的某些其他属性中?
显然,这个问题的答案很简单:关系类型通常没有自己的主键属性。
虽然这并不能解释禁止使用FK-继承,但它解释了为什么普遍使用PK-继承。
根据定义,由于关系对实体之间的关系建模,因此它拥有自己的主键属性没有意义(否则,它也将是一个实体)。