日期:2014-05-20  浏览次数:20701 次

人员表设计思想 —— 也许会有点帮助
当我们出生的时候,我们有什么?性别、出生日期、姓名。除了这些还有什么呢?体重、属性、星座、血型、父母、哥哥、姐姐、籍贯、身份证号、其他。这些都是一出生就拥有的。

  然后我们慢慢的成长,进入学校学习,进入社会打拼,打工、创业等等。我们又有了很多很多的信息。

画一个脑图,也许更清晰一些:


  那么人员表要如何设计呢?看看上面说的,大家都共有的、基础的,而且常用的是什么?姓名、出生日期、性别。对就是这三个。于是我就建立一个人员基本信息表——Person_Info
  Person_Info表里除了这三个字段外,增加主键PersonID、身份号和添加记录日期、最后修改日期。这个就是人员信息的核心表。
  为什么要这么做呢?想想我们经历了风风雨雨,学校(学生信息)、公司(员工信息)、医院(体检、就医)、银行(申请银行卡、信用卡)等,不管是什么系统,这四个字段几乎是必填的,是标志我们的重要信息,其稳定性和通用性可见一斑。不把这个作为核心,把什么作为核心呢?

  在做具体的项目的时候,我们可以根据需求设置其他的表,像脑图里的学历信息、工作信息等,都用PersonID来关联。目的就是要设定一种稳定的表结构。不管需求如何变化,这种表结构是不能变的。这个就是变化中的不变。看上面的脑图,加了很多的扩展信息,但是人员基础表还是核心,还是可以用PersonID作为关联字段。加了东西,这种结构没有变化。这是不是达到了稳定性喝可扩展性呢?

  如果您的需求,没有出现在上面的脑图里,那么你可以试着加一下,看看是否打乱了这种结构。如果没打乱,说明这种结构是稳定的,如果打乱了,麻烦您说一下好吗?

  在会员注册活动里,我设计了多个表,这个就是原因之一。其实就是按照这个思路来设计的数据库。

  右上角的账户信息,增加了角色部分,这个是一时兴起。画脑图画的,想到哪里就画到哪里,画完了发现结构还可以,没乱。于是就保留下来了。账户的设计,是想实现一个人可以有多个登录账户,所以设置为一对多的形式,那么账户信息右面的表就都用账户信息的主键UserID作为关联字段了。

  会员注册(欢迎参加) 里的设计。我还是觉得脑图更容易理解一些,呵呵。

ER图
 


表关系图




------解决方案--------------------
这玩意要根据项目不同而不同吧,关键是要适用。
------解决方案--------------------
探讨

这玩意要根据项目不同而不同吧,关键是要适用。

------解决方案--------------------
思维导图是一个不错的工具。

这种思维方法值得大家借鉴!

谢谢lz分享。
------解决方案--------------------
太复杂了吧
------解决方案--------------------
呵呵 当年 我做sns的时候 表设计似乎跟楼主一样 


不过思维导图我可不会画
------解决方案--------------------
那修改日期不用加到核心表里吧
------解决方案--------------------
这个是一个不错的思想了
------解决方案--------------------
的确是各有各的不同.不同系统需要的内容各不相同...
不过可以作为参考
------解决方案--------------------
各有各有需求, 楼主分享的是一种思想,并不是一个应用。

我觉得这个设计思想不错。。。
------解决方案--------------------

画出图确实能让思路清晰。。。
------解决方案--------------------
我们现在的人员表 字段多达100多。。。。确实1楼说的没错。LZ的图我是不会画。
------解决方案--------------------
说的好。。。。。。。。。。。
------解决方案--------------------
除非想做一个跨行业,跨国界,航母级的软件,你需要绞尽脑汁,面面俱到...
------解决方案--------------------
这么复杂。。。。。。
------解决方案--------------------
当个程序员容易吗,大灌水……
------解决方案--------------------
图弄的不错...
------解决方案--------------------
我看了许久还不是很清楚ZL的思路!似乎有点复杂!再学习学习!
------解决方案--------------------
没必要那么复杂吧
------解决方案--------------------
对我来说还是有些复杂了 不过学习了
------解决方案--------------------
探讨

其实没那么复杂。

脑图不难,只要脑子里能够想到,思维不是很混乱,都能画的出来。

画ER图,感觉很别扭,不流畅。

画脑图就有一种行云流水的感觉了,很爽。

数据库设计也不难,我也不想面面俱到,只是想设计一个“牢固”的结构。