日期:2014-05-20  浏览次数:20927 次

关联多张表的对象的设计
如下三张表单:
1.用户信息表:Staff
字段名 类型 备注
Staff_ID Int(自动加一) 用户ID
Staff_Name Varchar 用户名(默认工号)
PassWord varchar 密码
Real_Name varchar 真实姓名

2.角色字典表:Role
字段名 类型 备注
Role_ID Int(自动加一) 角色ID
Role_Name Varchar 角色名称名称
Role_Description Varchar 角色说明

3.用户所属角色表:
字段名 类型 备注
Staff_ID Int 用户ID  
Role_ID Int 所属角色ID
  因为表3是简单的两张表的关系表,所以在进行抽象时,在类Staff和Role中分别定义List类型的字段(属性),就可以获得员工所属的角色和某个角色下的所有员工信息。实现了表3关系表的操作。
Class Staff
{
  Public List<Role> RoleS;
}
Class Role
{
  Public List<Staff> StaffS;
}
但是如果是下面的情况:
4.课程信息表:Course
字段名 类型 备注
Course_Number varchar 课程编码
Course_Name varchar 课程名称
Remark Varchar 课程说明

5.学期信息表:Term
字段名 类型 备注
Term_ID Int 学期ID
Term_Name Varchar 学期名称

6.教室信息表:ClassRoom
字段名 类型 备注
ClassRoom_Number Varchar 教室编号
Remark Varchar 教室说明

7.班级信息表:Classes
字段名 类型 备注
Class_ID varchar 班级编号
Stu_Number int 学生人数

8.学期课程表:Term_Course
字段名 类型 备注
Term_ID Int 学期ID
Course_Number Varchar 课程编号
Class_ID Varchar 班级ID
Staff_ID int 任课教师ID
ClassRoom_Number Varchar 教室编号

表8中涉及到到表1、4、5、6、7中的字段,如何除了定义教师Staff、课程Course、学期Term、教室ClassRoom、班级Classes这些对象外,怎么实现表8的操作?


------解决方案--------------------
你表8应是5个联合主键,可以前台新增,删除,与正常表操作一样

但更新就应不用了,主键虽可以更新,但最好不要更新
------解决方案--------------------
8表属于综合表也就是主表,1,4、5、6、7属于子表,在主表中通过下拉或者其他操作,将子表作为标准对象进行选择性的操作。
这种设计是为了规范输入的正确性,能够实现数据的统一性。只要一个子表变更,主表就可以通过id关联显示。
你在做8表设计的时候,将子表做成下拉选择的就行了。
------解决方案--------------------
探讨
我的意思是,在多层架构中,也将Term_Course定义成一个类吗?还是有其它更好的方法。