我想知道是否有2列可以引用不同表中的单个列。
我有2个表users
和matches
users
表包含user_id
列中的所有用户ID,匹配包含两列userA
和userB
。如果可能的话,将两列引用到users
表中的同一列是否明智?
我之所以想要使用它,是因为我被告知这是最佳实践,它允许DBMS优化查询。
为了进一步解释,匹配表保存已选择userA
的{{1}}的ID。如果userB
也选择了userB
,那么就会有匹配。归结为约会应用程序。
答案 0 :(得分:2)
是的,您可以这样做:来自用户的匹配的userA,来自用户的指向user_id的匹配的userB,以及来自用户的指向user_id的匹配的userB。这是有效的。
答案 1 :(得分:0)
逻辑上usera
和userb
都是不同的实体。因此,它们不应该具有相同的userid
。
您可以拥有类似
的内容 带有users
的 userid
表
matches
表
usera
和userb
列都引用了userid
表格中的users
所以结果将是
Users
userid
1
2
3
Matches
usera userb
1 2
2 3
答案 2 :(得分:0)
这当然是可能的。
是否明智取决于列的含义。但根据匹配表的含义,它可以充分发挥作用。相同模式的其他有用示例将是“People”和“ParentOf”
这样的表对People
------
Jane
Bob
Sally
ParentOf
--------
Jane, Bob
Bob, Sally