Database 主UID何时作为外键传递?
我担心我的问题可能措辞有点不准确,因为我只是从数据库开始,但我会尽力。。。因此,在我的大学,我们使用Oracle Data Modeler对数据库进行建模。问题是:一个实体的主UID何时作为外键传递给另一个实体?从我(实验上,我无法用谷歌搜索出来…)发现,两个实体在绑定1:1时交换它们的PK——但是其他类型的绑定呢?钥匙通过哪一侧标记为可选是否重要 您需要研究不同类型的关系及其映射 据我所知,以下是三种类型的关系:Database 主UID何时作为外键传递?,database,oracle,Database,Oracle,我担心我的问题可能措辞有点不准确,因为我只是从数据库开始,但我会尽力。。。因此,在我的大学,我们使用Oracle Data Modeler对数据库进行建模。问题是:一个实体的主UID何时作为外键传递给另一个实体?从我(实验上,我无法用谷歌搜索出来…)发现,两个实体在绑定1:1时交换它们的PK——但是其他类型的绑定呢?钥匙通过哪一侧标记为可选是否重要 您需要研究不同类型的关系及其映射 据我所知,以下是三种类型的关系: 一对一 这是一个表的一行与另一个表的零行或一行相关的关系。理想情况下,这种关系不
person(personid, firstname, lastname, ...)
permanent_address (permanent_addressid, personid, line1, line2, ...)
其中永久地址
表中的人名
指的是人名
表中的人名
列
如果要强制外键,可以向列中添加notnull
约束person(person_id, first_name, last_name, birthdate, ...)
car (licence_plate_number, person_id, carname, ...)
其中car
表中的person\u id
指person
表中的person\u id
person (person_id, first_name, last_name, birthdate, ....)
hobby (hobby_id, hobby_name, hobby_type, ...)
person_hobby (person_id, hobby_id)
其中person\u-id
中的person\u-hobby
表是指person
表的person\u-id
,person\u-hobby
表是指hobby
表的hobby\u-id
。这个中间表是实现这种多对多关系所必需的。我们可以在列集合(person\u id,hobby\u id)上强制执行主键
约束作为复合主键,以避免多次为同一个人分配相同的hobby