Database design 以有效的方式将昵称和psswrd存储在DBMS中
您会选择以下两个选项中的哪一个,为什么 备选案文1:Database design 以有效的方式将昵称和psswrd存储在DBMS中,database-design,Database Design,您会选择以下两个选项中的哪一个,为什么 备选案文1: Customer -> CustomerID_PK, DateOfBirth, Address, Username, Password 备选案文2: Customer -> CustomerID_PK, DateOfBirth, Address CustomerInfos -> CustomerID_PK, Username, Password 您不知道经理存储每个客户以前的所有用户名和密码是否重要。您只需知道,每个客户
Customer -> CustomerID_PK, DateOfBirth, Address, Username, Password
备选案文2:
Customer -> CustomerID_PK, DateOfBirth, Address
CustomerInfos -> CustomerID_PK, Username, Password
您不知道经理存储每个客户以前的所有用户名和密码是否重要。您只需知道,每个客户都可以随时更改其密码和昵称。不管安全方面如何,您会采用哪种方法?设计良好的数据库是物理世界的良好模型。所以,在决定像你这样的问题时,想想世界上发生了什么 你的顾客来了。客户应该具备哪些属性?每个客户固有的属性是什么?客户是自然人,因此他们每个人都有一个独特的出生日期。在您的系统中,每个客户只有一个用户名和密码。这些是显而易见的特征
- 用户名
- 密码
- 出生日期
(credential_id PK, customer_id FK, username, password, effective_date)
无论如何,为了数据工程的清晰性,您应该使用一个表来存储一个实体。因此,我建议选择1
这是一个切实可行的建议。随着时间的推移,模式只会得到更多的表,所以避免额外的表是很好的。包含具有相同代理项(自动递增)主键的多个表的模式更难理解和维护,并且这些额外的表是不必要的
例外情况:您已经有数百万客户,需要添加更多属性,但您无法承受重新组织表和添加列的停机时间。您应该询问“您不知道”。
(credential_id PK, customer_id FK, username, password, effective_date)