我对下面的ER图有疑问。将ER图翻译为关系模型
问题:如果从演员到地点实体出生和生活有2个关系。
它们是否都具有相同的外键是place_no?那么这是否意味着我只是将外键放在Actors关系模型中?就是这样,还是必须为Born创建一个表?
因为演员出生在一个地方,生活在一个地方...所以如何区分1 place_no FK?
我对下面的ER图有疑问。将ER图翻译为关系模型
问题:如果从演员到地点实体出生和生活有2个关系。
它们是否都具有相同的外键是place_no?那么这是否意味着我只是将外键放在Actors关系模型中?就是这样,还是必须为Born创建一个表?
因为演员出生在一个地方,生活在一个地方...所以如何区分1 place_no FK?
您必须指定关系的秩序。您只需使用外键即可将关系模型中的概念1:n
关系直接映射到关系模型中。对于n:m
关系,您应该使用联结表。
由于这里的关系似乎都是n:1
,因为一个人可能只出生在一个地方,并且(根据您的意见),我们还可以假设一个人只能在我们可以映射的时间居住在一个地方这些关系作为外键。
如SQL的示例(假设我们有两个关系actor
和place
,该代码是在CREATE
代码的actor
):
[...]
born int REFERENCES place(place_no),
lives int REFERENCES place(place_no),
[...]
显然有两个实体(演员<>地点)之间的两个关系,所以在其中一个表中,您必须使用两个不同的外键,这些外键恰好引用了另一个表中的相同属性。 – lared 2015-02-08 22:59:35
这样一个名为Lives的Actor和一个名为Born的外键? – geforce 2015-02-08 23:07:30
或者我是否为每个关系创建一个表格,例如生命的关系已经place_no FK和生活FK,a_no FK ...生生的关系有place_fk a_no FK和Born FK? – geforce 2015-02-08 23:08:58