注册 登录
编程论坛 SQL Server论坛

求一个数据库设计方案!

aierlan 发布于 2011-01-12 22:43, 947 次点击
最近公司要设计一个项目,里面涉及的数据库设计问题比较难办(对我来说),所以想求坛里的的高手帮忙一下。设计如下
这个项目很简单,就是设计一个类别管理系统。根据用户的要求这个类别一共有四个等级,例如:
类A包含零个或多个类B,类B包含零个或多个类C,类C包含零个或多个类D。
这个类别管理系统会在两个部门使用,但是由于这两个部门在类A和类B的使用上用得名字不同,所以对于部门1,类别如上所示。但对于部门2,类别如下:
类E包含零个或多个类F,类F包含零个或多个类C,类C包含零个或多个类D。
还有个问题是类A和类E是对应的,就是名字不同。类F和类B是对应的,也是名字不同。就是说类A里的类别会对应零个或多个类E里的类别,而类B里的也是对应类F里的零个或多个类别。

问题大概就是这样。我用SQL server设计了一个方案,但是总觉得好像不对,传上来让高手看看是不是有问题,要是有,什么方案比较好。谢谢!

我的设计中:
表CategoryForSourcing中存的是类A和类B。
表CategoryForEngagement中存的是类E和类F。
表Activity中存的是类C和类D。

只有本站会员才能查看附件,请 登录


[ 本帖最后由 aierlan 于 2011-1-12 22:54 编辑 ]
3 回复
#2
aierlan2011-01-12 22:49
不知道我的附件大家能不能看到!

[ 本帖最后由 aierlan 于 2011-1-12 22:50 编辑 ]
#3
cnfarer2011-01-13 08:07
这两个部门除了类别名不同外,数据是否一致?如果仅仅是名称不同的话,当然有多种解决方案:
1.统一名称(首选,这也是一种规范,由于我们的事情很难做--各自为政,这也许难以实现);
2.在类A和类B中加入一个别名字段可也。
3.像你这种设计思想也未尝不可。

个人觉得,直接四个表,3个1:N联系最简单不过了。
#4
juejitianya2011-01-13 09:20
首先:A,B,C...E,F等类别本质上等同的,添加必要的关联字段后,可以将所有的类别信息存放到一个基础表中;
第二:使用ID做主键来标示记录,分别为部门1和部门2建立相应的“名称”字段,来处理业务部门对名称的不同需要;

这样做,你可以将类别之间的关系做的比较灵活,而且配合视图使用可以较好地满足你的需求。
1