首页 新闻 会员 周边

化验室信息系统数据库设计-求教

0
悬赏园豆:20 [已解决问题] 解决于 2011-10-29 13:47

需要对一个化验室信息系统数据库设计,因为新手,不太懂,求教大家:
需求如下:
一个样品,需经过多组检测,每组检测不同的项目;
不同种类的样品,部分组别检测的项目相同,部分组别检测的项目不相同;
目前设计方案两种如下:

方案一:
样品基本信息表      组别1检测  组别2检测  组别3检测        组别4检测
--样品名称  ---项目1  ---项目31  ---项目51  ...
--样品种类  ---项目2  ---项目32  ---项目52
--采样时间  ---项目3  ---项目33  ---项目53
--等等    .....    ......      ....
      ---项目30  ---项目50  --项目60
这种设计,每组的检测项目是最大化的,有些样品可能只检测其中7,8种项目。(样品基本信息表

和组别*检测,用一个样品编号相关联)


方案二(样品基本信息表相同):
样品类别1  样品类别2  样品类别3  样品类别4
---项目1  ---项目1  ---项目1
---项目2  ---项目2  ---项目2
---项目3  ---项目3  ---项目3
---  ...  ...
--项目40
这种设计,不同的样品类别会造成很多检测项目是相同的,是否太过冗余了。


求教:相对来说哪种方案合适点,或者有更好的设计方案,便于存储查询和今后的扩展(比如多增

加一个检测项目)?

问题补充: 哦,还有个问题,实际需要,必须要对样品的每个检测项目设计范围和目标值进行设置。这个大家有好想法么?
vice的主页 vice | 初学一级 | 园豆:182
提问于:2010-11-17 16:18
< >
分享
最佳答案
0

按照一个样品只属一个样品种类,一个种类的样品检测项目固定

样品表:
样品编码号    样品种类     采样时间
组表:
组编号     组名
项目:
项目编号   项目名
样品检测项目:
样品种类     项目编号
检测表:
样品编号    组号    项目编号   检测值

有些表只是用来方便管理,可以没有,检测表必须很长,因为检测表是为检测值设定的,所以行数等于样品数*检测组数*项目数。

选定你需要的列做索引,可以增加查询速度,但会增加开销。

如果是我,我会把检测表的样品编号该为检测编号,检测编号的值设为样品编号、组编号和项目编号的组合,比如样品编号是333,组编号4,项目编号为2,就是33342,可以把这一列当做索引,不会重复,还可以少了第二和第列,但问题是别人不知道我坐标时是这样想的,就会造成查询困难,胡乱编号。

收获园豆:20
贪心狸猫 | 小虾三级 |园豆:872 | 2010-11-18 21:54
第一次看你的回复,也大概知道了你的想法。也是考虑到行数等于样品数*检测组数*项目数(估计30*4*15=1800),担心有点庞大。添加索引列确实是个好主意,还有检测编号确实必要(之前没考虑将样品编号、组编号和项目编号的组合,只是设置唯一值,目前想用时间+样品编号+测试人+检测类型做检测编号,检测表中组号、项目编号任然保留),我测试下看看。多谢你的答复,还有查询困难,具体是什么?
vice | 园豆:182 (初学一级) | 2010-11-20 10:36
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册