今天帮我朋友设计一个数据库。在建表时,突然灵感来了。
要为员工设计一张表,刚开始都觉得有点难,想来想去都列不出列名。然后细想一下,就发觉原来想不出列名的原因是这样:
员工有:员工资料,上班记录,员工类型。
三个东西都是一个实体,所以有种对象中包含对象的感觉。
于是我就想,先不理员工,先设计好员工资料,上班记录,员工类型三张表再说。
员工类型很简单,因为我朋友的需求够简单,就一个员工Id和一个类型
上班记录有待和朋友讨论,我暂时设计为(员工Id,上班时间,下班时间)
然后员工资料就比较好想,网上大把这样的东西,一搜,再整理一下资料就出来了。
(员工Id,电话,出生日期,姓名,身份证,到职日,出生地点,性别,现住地址,技能专长)
三个表都有一个相同的字段:员工Id
这样好像什么都出来了,只要我从这三张表中拿一张作为主表就完事了。
基本上思路都可以这样:
先把所有与该对象相关的东西全部列出来,那些是一个实体,那些像一个数组之类的,就标注起来。
列完之后,把是实体的,或像一个数组的字段再划分成表。
设计完表之后,再看看是否满足1NF,2NF,3NF等。
然后再思想能不能符合需求,在数据库中建表,插入些数据,操作一下,试一下有没有异常。再作调整
因为这是我第二次自己帮人设计数据库。所以经验很浅,如果有什么不当的地方,望请指正。