数据库中存放数组?有好的解决方案的来啊!

本人想做一个人员管理系统,现在已经有人员基本信息表,表中关键列为(“人员id”,“工作单位”);同时还有部门信息表格,表格中包括(“部门编号”,“部门名称”,“部门人员”),由于一个部门有多个人员,对于这样的数据不知道如何组织,本来打算将部门信息表中“部门人员”一列设置为字符串,然后添加类似于(1,2,3)这样的数据,其中的数字表示该人员在人员信息表中的编号,这样一来到时候从数据库取出数据的时候可以转化为数组,然后再执行查询。

挺麻烦的,而且容易出错,而且考虑到维护,比如在某一部门增加一个人员的时候,是不是需要同样取出字符串,转化为数组,然后在数组中添加一个数字,然后再转为字符串,再插入表格。

总觉得这样子太麻烦,不知道大家有没有好的设计思路啊?

作者: ToB蓝波湾   发布时间: 2011-08-18

应该把部门信息表中的“部门人员”字段去掉,然后在人员表中添加“所属部门”(部门编号)字段,这样就可以了

作者: ypengh   发布时间: 2011-08-18

人员信息表 就是你说的那样设计的

但是我觉得人员太多,而且要分类显示各部门人员的时候会挺慢,所以才这样想的

作者: ToB蓝波湾   发布时间: 2011-08-18

首先,觉得你说的数组的做法的实现性不太可能,而且分类各部门人员的时只用到一个联表查询,应该不会太慢,你还可以把它写成一个存储过程

作者: ypengh   发布时间: 2011-08-18

嗯,你说的方法可行,存储过程比单纯的sql语句效率更高吗?

不过你说的我的那个方法也并不是不可行的,可以将人员编号用逗号分隔开连成字符串存到数据库,等从数据库取出的时候再根据分隔符转化为数组,不过维护起来就很麻烦,而且真正实现起来效率也不是很高

作者: ToB蓝波湾   发布时间: 2011-08-18