日期:2014-05-18  浏览次数:20447 次

类似人员的“基本属性”中的“籍贯”项,是再建一个表,还是直接存在基本属性的表中呢?
如题,开发一个信息管理的系统,一般将黑龙江/吉林等信息另建一个表、基本属性中只存籍贯表的序号;还是直接将黑龙江、吉林等以文本的形式存到一个表里呢?请相关权威人士给个答案,谢谢。

------解决方案--------------------
肯定是另建一张表啊
------解决方案--------------------
如果所有信息放一个表里比较混乱,而且不容易整理
我觉得还是分开建表好,地区表(地区代码,地区名),证件表(证件类型,证件名称)....
然后主表是 人名,地区代码,证件类型,证件号码.....
查询时join几个表就可以了

------解决方案--------------------
其实两种方法都可以,各有优缺点,但最好是拆开另建,确实如果字段多了的话会不直观,像我们公司系统底层的库,动辄100多个字段,当然不是说我们的库有很大的冗余,ERP考虑的因素比较多,好像最多字段的一张表格有195个字段,简直不让人活
------解决方案--------------------
如果基本属性中只存储籍贯的序号,当表(不是籍贯信息表)的记录很多比如有几十万的时候,如果有这样的查询:
SQL code
select u.UserName,a.Address from UserTable u,Address a where u.AddressID=a.AddressID

------解决方案--------------------
给你一点建议:
这些基础信息是需要通过另外的表格来储存,
在人员资料表中这些信息是纪录对应的代号。

设计基础信息表有个小技巧,
你可以做两个关联表,
表1的数据记录基础信息类型:省份/职务/邮编等等,
表2的数据记录这些信息的具体值,
这样在设计一套系统的时候就不会出现过多的基础信息表,
像这样的固定值都是系统设计的时候就要预先储存好的。
------解决方案--------------------
通常属性是会放在一个主体表中
------解决方案--------------------
设置一个代码表:
id item group
1 军官证 证件
2 安徽省 省份
3 身份证 证件
4 北京市 省份
.
.
.
------解决方案--------------------
我一般情况是这样的。
但是对于基本不做变化的项是直接录入主表,比如省份,中国的省份多少年才有可能变化。
但是代码表中也有,主要用于输入时的选项,id不起作用。
------解决方案--------------------
我现在的习惯是只建一个表的,是指籍贯和类别这些(身份证这个有点不同,因为还要先选是身份证还是军官证这样的)

我是把配置字段都放在一个表中,表中就两具字段
KeyName, KeyValue
comefrom,"A市,B市,C市,..."
province,"浙江,江苏,广东,....." 

这样的,然后在实现记录表里,直接填写 "A市" 这样的

当然,每一种方式都会有自己的缺点和优点,关于自己所采用的手段,有哪些需要提醒用户注意的,需要在软件操作手册中给予说明