-1

这是场景...一个人可以有一个用户记录,有或没有相关的个人资料记录。该人还可以拥有他/她“管理”的多个个人资料(家庭成员等),这些个人资料可能有也可能没有与之关联的用户记录,因为他们可能会或可能不会使用网站/应用程序。

个人资料记录包含个人信息,例如姓名、出生日期等……所以我们可以拥有史密斯奶奶的个人资料以及她的个人信息,但没有相关的用户记录,因为她自己永远不会使用该网站,只有她的女儿会。

下面列出了重要的字段(这是一组正确规范化的表吗?):

用户:id,电子邮件,密码,profile_id(FK,NULLABLE)

USER_PROFILES:id、user_id、profile_id

配置文件:id、name、dob、user_id(FK、NULLABLE)

我想我想知道的是,如果我应该同时拥有 profile_id 外键和 user_id 外键,这些是多余的吗?在我的网站中,我有一个个人资料编辑页面,您可以在同一页面上编辑一个人的用户信息和个人资料信息,因此我希望能够从参考页面提供个人资料 ID 或用户 ID 并拉起适当的数据。如果我在配置文件记录中没有 user_id 来查看当前配置文件是否有用户记录,这很难做到。

4

1 回答 1

1

如果我正确理解了您的表结构,那么 profile_id 似乎是多余的。USERS 中的 id 是您到 PROFILES 的链接,它作为外键驻留在 user_id 中。

至于你是如何查询的……我有点担心。您不应该要求用户 ID,然后允许用户查看和编辑所有关联的配置文件吗?这似乎符合当前的做法,应该可以解决您在 USERS 中必须有 profile_id 的困境。

尽管如此,即使您保留当前设置,用户 ID 也可用于查询配置文件,而配置文件 ID 可用于查询配置文件,因此您可以设置任何一种方式。

于 2012-11-14T19:45:20.427 回答