目前我将用户的“FirstName”和“LastName”存储在USER表中,但我也有一个USER PROFILE表(提供有关用户的其他信息),并且让用户的“FirstName”和USER PROFILE表中的“LastName”也是如此。
那我该怎么办?制作两份“FirstName”和“LastName”?
USER表,包含用户用于登录其帐户控制面板的用户凭据,即用户名,密码,注册日期,安全问题等
USER_PROFILE表,包含有关用户的信息,例如地址,电话号码,出生国家/地区,公民身份等
USER 1. * USER_PROFILE
答案 0 :(得分:3)
将第一个名字和姓氏放在用户个人资料中,除非在登录过程中需要它们。这样就可以处理更少的数据,并且它们不仅仅包含帐户信息。如果需要,只留下登录数据,这样可以加快查询速度。
正如其他人所说,不要复制数据。您可以在需要时加入表格。您的用户表上应该有一个主键(最好不是用户名,他们可以更改),这是从用户配置文件表中引用的。如果不这样做,请在考虑做其他事情之前先添加一个。
答案 1 :(得分:1)
不,不要制作2份。将其保留在USER表中,或将其移至USERPROFILE表。
如果两者都有用户ID,则可以使用连接。
如果您可以在USER和USERPROFILE之间提供更多结构细节,我们可以确定它属于哪一个。从我的想法来看,似乎USERPROFILE是用户的个人详细信息,因此这似乎是提供所述信息的合理位置。
答案 2 :(得分:0)
USER表中还存储了哪些其他数据?
USER_PROFILE和USER中的数据有什么区别?
一旦你回答了这个问题,希望用户的名字可以非常清楚地符合这两个区别中的一个。
无论哪种方式,都不要复制它。
答案 3 :(得分:0)
不要复制日期。将它们放在与最常用的其他字段分组的表中。
例如,如果名字和姓氏字段是私有字段,必需,并且与用户表中的字段一起使用的次数比配置文件表更频繁......将它们放在USER表中。
如果需要,但最常用于电话号码,地址等,请将它们放在配置文件表中。
如果它们是可选的,毫无疑问将它们放在配置文件表中。
答案 4 :(得分:0)
如果USER中的每个条目在USER_PROFILE中只有一个条目,反之亦然,那么从逻辑上(即从标准化的角度来看)它们应该是一个单独的表(可能有不同的视图,例如,只有授权的人才能看到地址和电话号码)。
您可能遇到用户个人资料映射到多个用户的情况(例如,个人拥有普通用户和“管理员”帐户)。在这种情况下,firstname,lastname将成为配置文件的一部分。
此外,如果用户有多个配置文件(例如通用管理员帐户),这些配置文件也适合使用firstname,lastname作为配置文件的一部分。