日期:2014-05-17  浏览次数:20790 次

该怎么设计我的表中的字段啊?
最近要做一个系统,现在要设计数据库中的字段,字段大致如下:用户名(唯一性主键)、密码、密码问题、密码答案、姓名、性别、年龄、身高、家乡、大学、入学年份。
  现在要设计表,不知道该怎么设计,是设计成一张表还是多张表?自己感觉如果设计成一张表,表中字段比较多,不过好像没违反三范式;如果设计成两张表,两表的主键又好像都是用户名,是一样的。所以不知道该怎么设计?大家帮帮忙!!在下先感谢了!!

------解决方案--------------------
用户名一般不应设为主键,一般应设置一个用户编号(ID)
单从字段来说,远不算多
可以做成两张表的
用户密码表(用户ID(唯一性主键)、密码、密码问题、密码答案)
用户基本信息表(用户ID(唯一性主键)、姓名、性别、年龄、身高、家乡、大学、入学年份)
------解决方案--------------------
做成一张表也没什么问题。
所有信息都是跟用户名相关的。
------解决方案--------------------
探讨

那我的用户名要求是唯一的,因为在注册时要使用Ajax进行唯一性验证。
是不是设置一个用户编号,int类型,让其自动递增,然后用户名(就是起的一昵称)也加入其中,这样可以吗?


------解决方案--------------------
如果用户名是唯一的,应该加上唯一索引
------解决方案--------------------
我觉得可以设计成一张表,另外最好再加个字段:用户编号,让它自动递增,唯一标识每一个用户!
------解决方案--------------------
还是设计成两张表吧,这样信息更明确一些,用户名唯一就设为主键,还可以胡设为外键