【发布时间】:2016-05-13 08:51:06
【问题描述】:
我正在尝试设计一个复杂的数据库,但我有几个问题。
1:将两个映射表映射在一起有什么问题吗?不管是什么原因,我都试图找出它是否违反规范化或最佳实践。
2:如何改进或避免将两个映射表映射在一起,如附图所示?
规则:
Course - 包含所有课程(我们进行的培训)
课程可以有更多类型,类型存储在courseType表中
课程总是会有更多类型的人(存储在people 表中),每个人都有一个角色(角色存储在role 表中。
有些课程只接受某些类型的角色,这就是我制作courseTypes_has_roles 表的原因。
people_has_role 表被映射,以便我可以看到哪个people 可以是哪个role 哪个course 类型。
course_has_people_has_roles 是为每个course 分配role 的people 的映射。重要的是要知道,有些人可以为一种类型的课程担任更多角色,但他们在每个单独的课程中只有一个角色。
我要避免的事情:我不想在course 表中指定每个人的角色,因为有些人被分配了角色但他们还不属于任何课程。
【问题讨论】:
标签: mysql database-design many-to-many relational-database