0

假设我想创建一个数据库来存储用户的登录名和个人详细信息,那么我应该创建一个表

Only One table Table User
Username(varchar255)|User_id(int)|Name(varchar255)|Sex(0,1,2)|DOB(Date)|Password(char64)|

两个带有外键的表

Table User_Login

    User_id(int)|Username(varchar255)|Password(char64)|

and table User_Detail

    User_id(int)|Name(varchar255)|Sex(0,1,2)|DOB(Date)|
4

2 回答 2

1

问自己这些问题。

一个用户会有一个或多个用户名吗?

用户会有一个或多个密码吗?如果您想在一段时间内检查唯一密码,这包括以前的密码。

用户会有一个或多个名字吗?

用户会有一种或多种性别吗?

用户会有一个或多个出生日期吗?

当问题的答案是“一”时,该列属于用户表。

当问题的答案是“多个”时,该列属于不同的表。

这个过程称为数据库规范化的第一范式。

于 2013-06-20T19:27:13.503 回答
0

我认为有两种流行的方式来定义一个表,3NF 和 BNCF(它们将被详细记录)。

规则是:

  • 不应该有重复的列(简单的列)
  • 删除不完全依赖于主键的列(查看属性,如果它们在单独存在时有意义,那么它们应该在单独的表中(类似的东西)

第一次很难掌握,所以请阅读 1NF、2NF、3NF 和 BNCF

于 2013-06-20T19:28:44.753 回答