我是否正确设计了这些表格?

时间:2012-11-14 19:42:01

标签: mysql entity-framework-4 relational-database

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

个人资料记录包含个人信息,例如姓名,dob等...所以我们可以让奶奶史密斯的个人资料但没有相关的用户记录,因为她自己永远不会使用该网站,只有她的女儿会。 / p>

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

USERS:id,email,password,profile_id(FK,NULLABLE)

USER_PROFILES:id,user_id,profile_id

PROFILES:id,name,dob,user_id(FK,NULLABLE)

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

1 个答案:

答案 0 :(得分:1)

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

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

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