Database design ERD是否保持一对一的关系

Database design ERD是否保持一对一的关系,database-design,erd,Database Design,Erd,我正在为一家在线零售商店设计一个ERD图。我有一个客户表,其中存储了所有相关详细信息。我还有一个客户登录详细信息表,其中只包含:;电子邮件和密码字段。我能看到的唯一可用的关系是一对一,电子邮件是两人之间的链接 我的问题是,把这张桌子放进顾客那张桌子里是不是更好?或者把它分开有什么好处 如果您的所有列都与客户直接相关,并且它们不会造成冗余(重复行),那么请将它们保留在同一个表中,因为数据库不是我的强项,我将非常感谢您的帮助。例如,以下字段:姓名、家庭、电子邮件和密码都应位于同一个表(实体)上,该表

我正在为一家在线零售商店设计一个ERD图。我有一个客户表,其中存储了所有相关详细信息。我还有一个客户登录详细信息表,其中只包含:;电子邮件和密码字段。我能看到的唯一可用的关系是一对一,电子邮件是两人之间的链接

我的问题是,把这张桌子放进顾客那张桌子里是不是更好?或者把它分开有什么好处


如果您的所有列都与客户直接相关,并且它们不会造成冗余(重复行),那么请将它们保留在同一个表中,因为数据库不是我的强项,我将非常感谢您的帮助。例如,以下字段:姓名、家庭、电子邮件和密码都应位于同一个表(实体)上,该表是您的用户,因为它们与用户实体密切相关

如果您假设存储了有关用户的地址信息,包括街道、城市、州等。。然后,有一个地址实体,从用户到地址实体有一对多的关系,这是合乎逻辑的


最后一件事,当您有关于您的用户的不同数据存储时,规范化的想法非常好,因此它仅在这种情况下才有意义。过度规范化也会给查询的性能带来额外的开销,毕竟越规范化,select查询的运行效率越低。

是的,对于这样的一对一查询,我希望将所有细节都放在一个表中

有些例外情况可能是:

  • 表演。如果有数十万用户,您可能希望主表尽可能“精简”,有时这意味着将单个细节移到1对1表中

  • 数据库中的安全性。将密码与其他用户详细信息放在一个单独的字段中,可以让您在保护该表时投入更多的工作,而不会减慢或阻止对用户详细信息表的访问。用户详细信息将包含个人信息,但几乎没有什么比密码更重要了,密码让冒名顶替者能够访问实际做的事情(包括通过假登录轻松找到更多个人信息)

  • ERD的安全。由于您的问题的标题中有ERD,如果ERD位于单独的表中,则向ERD显示能够使用密码实际省略表名和列名的能力将更容易,并且在共享ERD、进行演示等时可能需要这样做

  • 要求多次登录。Stack Exchange等网站允许您将多个帐户关联到一个主“登录”。在这些场景中,用户名和密码是分开的,因为这实际上是一对多关系。因此,如果您确信一对一的关系永远不会改变,并且/或者您正在进行一个敏捷过程,而该过程在特性实际生成之前并不预期特性,那么您就不需要单独使用它


当然可以。增加了关于ERD的更多信息。