提问者:小点点

外键作为主键可以吗?


我有两张桌子:

  • 用户(用户名、密码)
  • 配置文件(profileId,gender,dateofbirding,...)

目前我正在使用这种方法:每个Profile记录都有一个名为“userid”的字段作为外键,它链接到用户表。当用户注册时,他的配置文件记录将自动创建。

我对我朋友的建议感到困惑:将“userid”字段作为外部和主键,并删除“profileid”字段。哪种方法更好?


共1个答案

匿名用户

外键几乎总是“允许重复”,这会使它们不适合作为主键。

取而代之的是,查找唯一标识表中每个记录的字段,或者添加一个新字段(自动递增整数或GUID)来充当主键。

唯一的例外是具有一对一关系的表,其中链接表的外键和主键是一个相同的。