一个档案管理系统,涉及到人员管理,人员除了保存姓名、年龄等基础信息外,还会根据每个人的分类管理不同的属性。比如:
“党员” : “入党时间、党支部”等属性
“医生” : “参加工作时间,医院、科室”等
“教师” : “参加工作时间,学校、科目”等
(!参考了这个帖子)[https://www.v2ex.com/t/254792]
然后自己的想法是 4 张表:
1 人员基本信息:涵盖基础字段、所属类别
2 类别:类别名称、父类
3 分类-属性表:分类 id,属性 id
4 属性值表:人员 id,属性 id,属性值
这样设计的话,表 2,3 需要在系统运行前就创建好,也就是说需求如果有了变动,需要调整结构,表 1 和 4 的内容就是后续随着系统运行不断增加了。
这个的缺陷:
1 表 4 的属性值类型无法区分了,比如 “参加工作时间”属于 date 类型,“科目”属于字符串,但是因为存储在同一列,所以只能统一用字符串了。
2 表 4 的数据随着系统运行会比表 1 数据增加的快几倍。
感觉有点像 wordpress 的那种设计,大家还有好的办法没有?
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.