【问题标题】:1:N relationship to profile or user table?与配置文件或用户表的 1:N 关系?
【发布时间】:2021-06-25 11:09:39
【问题描述】:

假设我有一个分开的用户表和一个用户配置文件表。这两个表具有 1:1 的关系。 User 表只包含电子邮件和密码等数据,而 UserProfile 包含名字、姓氏、电话号码等数据。

Projects(用于用户的项目)或 Ratings(用户的评分)等未来表与 UserProfile 表或实际 Account 表(用户)的比率为 1:N 是否更有意义?

感谢您的提示。

【问题讨论】:

    标签: sql postgresql database-design


    【解决方案1】:

    您的users 表应该有一个唯一的ID 来识别整个数据库中的用户。一般来说,这将是一个整数,因为它们对索引更有效。

    至于您的数据模型,您可以将user_id 用于引用用户的所有 表。这包括userProfiles。在该表中,它既是主键又是外键——除非这是具有版本生效日期和结束日期的类型 2 表。

    注意:我倾向于将所有敏感数据放在userProfiles 中——包括电子邮件。加密密码不需要去那里。这样,您可以更好地控制对 PII(“个人身份信息”)的访问。

    【讨论】:

    • 谢谢。如果我有例如表技能,外键也应该引用用户表而不是 UserProfile?
    • @Fabio 。 . .是的。您希望数据库中的所有用户数据都指向同一个表。如果您想拆分配置文件,则相应的表将是 Users
    猜你喜欢
    • 2022-09-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-01
    • 2020-09-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多