我知道这是一件简单的事情,但我发现一个问题,我找不到帮助自己的例子。
在我的ER模型中,“人”可以通过节点“befriended_with”与另一个“人”成为朋友。虽然我可以想象桌子是如何找到这个人的,但我对“befriended_with”表有疑问。在此,主键PID将被插入,并且必须再次使用PID进行假设,以便将两个人连接在一起。
Person
PID | Name
---- | -----
01 | X
02 | Y
befriended_with
PID | PID
---- | -----
01 | 02
但我无法想象这可以像这样工作。这通常是如何实现的?
答案 0 :(得分:2)
列的名称无关紧要。当这些列中的值标识相同类型/种类/类型的内容时,在两个不同的表中使用相同名称作为助记符仅作为助记符。 (特别是在通过NATURAL JOIN或USING查询时。)但是给同一个表中的列赋予不同的名称。 (尽管SQL允许在查询结果中使用重复的名称。)
--PID identifies a person named NAME
Person(pid, name)
-- person PID has befriended FID
-- FK pid REFERENCES Person (pid)
-- FK fid REFERENCES Person (pid)
Befriended_with(pid, fid)
当列列表的值必须显示为另一列列表的值时,我们声明FK(外键)。 ER图中关系/关联钻石的参与线对应于FK列。