用户和个人资料 - 哪个获得外键?

时间:2014-02-01 23:09:10

标签: database foreign-keys

用户表包含管理员信息,如用户名,密码和电子邮件。

个人资料包含所有其他信息,例如关于我,姓名,社交网络网址等。

不需要个人资料。 (在用户填写个人资料信息并保存之前,不会创建个人资料。)

所以,我看过2个实现:

  1. 只有用户具有ProfileId FK到配置文件 - ProfileId可以为空并且具有SET NULL删除规则。
  2. 只有配置文件具有UserId FK到用户 - UserId是必需的,因此,不可为空,并且DELETE CASCADE删除规则。
  3. 我不认为他们是等同的。当用户并不总是需要与其关联的配置文件时,每种情况更适合哪种情况?

1 个答案:

答案 0 :(得分:0)

经过大量搜索和一些发现后,Profile会根据Principal / Dependent概念获取UserId FK。

用户是主体,因为它可以独立存在,甚至不知道配置文件存在。配置文件是依赖项,它带有外键列,它依赖意味着它不能存在,直到创建用户将其新生成的Id提供给配置文件的UserId。