在这种情况下,将外键作为主键是个好主意吗?

时间:2017-04-24 04:09:43

标签: mysql sql database postgresql

我有一个主用户表,它有一些用户的共同属性(名称,电子邮件,电话),然后我还有2个表(比如x和y),它们包含两种用户的不同属性。你可以说(x1,x2,x3)和(y1,y2,y3)。一个用户可能只有一种类型。我在x和y表中有一个'user_id'列和一个主键列。 'user_id'列引用用户表中的'id'列。如果我删除x和y表中的'id'列(用作主键),而是使用'user_id'列作为主键和forign键,这是否正确?我正在使用postgres 9.6。

1 个答案:

答案 0 :(得分:1)

你的场景非常好,没问题。它在数据库术语中称为超类型和子类型。

要了解更多相关信息,请访问该链接。

http://sqlmag.com/t-sql/sql-design-supertypes-and-subtypes