Database 用户表中有多少表列过多?

Database 用户表中有多少表列过多?,database,database-design,Database,Database Design,这是我第一次不得不自己设计数据库。 我看过很多教程,但我也想问问社区 例如,这是我的用户表: Table users { id int [pk, increment] // auto-increment user_first_name varchar user_last_name varchar user_email varchar user_pass varchar user_role varchar user_identity_number int (can be

这是我第一次不得不自己设计数据库。 我看过很多教程,但我也想问问社区

例如,这是我的用户表:

Table users {
  id int [pk, increment] // auto-increment
  user_first_name varchar
  user_last_name varchar
  user_email varchar
  user_pass varchar
  user_role varchar
  user_identity_number int (can be NULL, depending on role)
  user_identity_card_front varchar (img URL,can be NULL, depending on role)
  user_identity_card_back varchar (img URL,can be NULL, depending on role)
  user_registered timestamp
}

我的问题是,我是否应该将此表拆分为多个表,例如users和usersmeta?

由于用户可以有多个角色,我建议将其移至另一个表中添加@RiggsFolly的注释。。。根据我在这里看到的,标准化模型可以是。。用户(id、名、姓、电子邮件、密码、已注册)、角色(id、前、后)用户角色(编号、用户id、角色id)。。(此处假设用户可以有多个角色)。。。此外,还不清楚如果您的国家允许护照、身份证或驾驶执照等多种身份识别方法有效,您可能还需要将身份证分开放在一个单独的表格中,假设身份证号码/身份证/正面/背面在此上下文中是指此……谢谢,我的应用程序只接受身份证,而不接受护照等。。此外,用户角色可以是例如管理员或简单用户,你不能两者都是…我不知道它是否有助于洞察信息。根据你的要求,一个人只能担任一个角色,并且只有一张身份证,那么就可以了。如果前面/后面的列名总是包含URL,我会将它们更改为xxxURL。就我个人而言,我会去掉所有的下划线,只把名字用驼峰大小写,尽管这是我个人的偏好。