数据库表中的数据类型的相关问题!请求解答

谁能帮我看看这几个表中的数据类型、字段长度、约束有什么问题!
谢谢各位,紧急。

名称 字段名 数据类型 字段长度 约束
用户帐号 User_id char 20 主键
用户密码 User_mima char 32 非空
用户权限 User_jibie 整型 1 非空

名称 数据类型 字段长度 约束
工号 整型 5 主键
姓名 文本 20 非空
性别 文本 2 非空
所在部门 Char 20 非空
联系电话 bit 20 无
劳动合同起始日期 datetime 20 非空
劳动合同终止日期 datetime 20 非空

名称 数据类型 字段长度 约束
工号 整型 5 主键
姓名 文本 20 非空
帐户号码 文本 50 非空
职务 文本 20 非空
基本工资 货币型 20 非空
奖金 货币型 20 无
罚款 货币型 20 无
实际工资 货币型 20 非空

名称 数据类型 字段长度 约束
工号 整型 5 主键
姓名 文本 20 非空
部门 文本 20 非空
职务 文本 20 非空
请假 文本 5 无
早退 文本 5 无
迟到 文本 5 无
实际工时 文本 5 非空

账号表
名称-----字段名-- 数据类型--字段长度--约束
标识列 id int 主键
用户帐号 User_name varchar 20 not null
用户密码 User_mima varchar 20 not null
用户权限 User_jibie int 1 not null

基本信息表
名称-----字段名-- 数据类型--字段长度--约束
标识列 id int 外键--对应账号表的主键
姓名 varchar 20 not null
性别 int not null
所在部门 varchar 20 not null
职务 varchar 20 not null
联系电话 varchar 20
帐户号码 varchar 30 (是指工资卡卡号吗?)
劳动合同起始日期 datetime not null (datetime 系统自动设置长度)
劳动合同终止日期 datetime not null

工资表
名称-----字段名-- 数据类型--字段长度--约束
标识列 id int 外键--对应账号表的主键
基本工资 货币型 20 非空
奖金 货币型 20 无
罚款 货币型 20 无
实际工资 货币型 20 非空
月份 -- 看你想要什么,是按月份纪录,还是按发工资的时间纪录

考勤表
名称-----字段名-- 数据类型--字段长度--约束
标识列 id int 外键--对应账号表的主键
考勤类型 int not null(如1为请假,2为早退,3为迟到)
实际工时 int not null
温馨提示:答案为网友推荐,仅供参考
第1个回答  2008-06-13
名称 数据类型 字段长度 约束
工号 整型 5 主键 --> 如果是'00001'~'99999'的话用VARCHAR 比较好
姓名 文本 20 非空
性别 文本 2 非空 --> 性别 用bit 最好
所在部门 Char 20 非空
联系电话 bit 20 无 --> 联系电话 INT
劳动合同起始日期 datetime 20 非空 datetime
劳动合同终止日期 datetime 20 非空 datetime

姓名重复太多,用一个就可以,还有就是 文本,CHAR 全部改为 VARCHAR 长度自定,正规化也做得不够。
第2个回答  2008-06-13
这个设计存在了一点冗余啊,姓名字段在好几个表中都出现了,其实可以舍去,只用工号就行了。表设计的不是太好。
相似回答