我有两张桌子:
- 用户(用户名、密码)
- 个人资料(个人资料ID、性别、出生日期等)
目前,我正在使用这种方法:每个配置文件记录都有一个名为"userid"的字段,即foreign key,它链接到用户表.当用户注册时,将自动创建其个人资料记录.
我对我朋友的建议感到困惑:将"userid"字段作为foreign和primary键,并删除"profileId"字段.哪种方法更好?
我有两张桌子:
目前,我正在使用这种方法:每个配置文件记录都有一个名为"userid"的字段,即foreign key,它链接到用户表.当用户注册时,将自动创建其个人资料记录.
我对我朋友的建议感到困惑:将"userid"字段作为foreign和primary键,并删除"profileId"字段.哪种方法更好?
外键几乎总是"允许重复",这会使它们不适合作为主键.
取而代之的是,找到唯一标识表中每条记录的字段,或者添加新字段(自动递增整数或GUID)作为主键.
唯一的例外是具有one-to-one关系的表,其中链接表的foreign键和primary键是一个相同的键.