你好,ACCESS中,如何建立两个表多对多的关系?第三个连接表如何设置?
3个回答
展开全部
追问
感谢你,如果两个表中没有冗余,有必要多对多吗?如果要设置,怎么设?例如人员信息表中有证件号,姓名,性别等字段,证件号是主键;人员成绩表中有ID,证件号,考核成绩等字段,ID是主键。
追答
建立规范的表及其关系主要就是为了消除冗余,两个表没有冗余也可能是多对多情况。
你应该把要达到的目的告诉程序设计者,否则人家会不明白你的意图,比如,考核成绩,是一个人只有一次考核成绩,还是有多次考核成绩等等。现在来分析你的例子,你的人员成绩表中的ID有什么意义呢?如果一个人只有一次考核成绩,就是一对一的关系,你ID也没有存在的必要,对于一对一的关系,也可以把考核成绩直接放在人员信息表中。
你一直提到多对多,估计你的表是多对多关系,为了好说明,假设如下:
人员信息表不变;另有一个考核项目表,如下,主键是考核项目ID:
考核项目ID 考核项目名称 考核标准 考核项目负责人
1 出勤考核 …… 张三
2 文明考核 …… 李四
3 业务量考核 …… 王五
一个人有多项考核内容,一个考核项目可以被多个人用来考核,所以是“人员信息表”和“考核项目表”是多对多关系,他们各自的表没有冗余,但却是多对多关系。
由于是多对多关系,需要通过另一个表把他们关联起来,你的“人员成绩表”正好起这个作用。
把“人员信息表”和“考核项目表”的各自主键取出组成“人员成绩表”的主键,“人员信息表”的字段应是这样的:证件号,考核项目ID,考核成绩;其中证件号,考核项目ID组成复合主键。“人员信息表”与“人员成绩表”是一对多,“考核项目表”与“人员成绩表”有时一对多,这样就消除了多对多关系。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询