在生活中也常常需要多对多的关系,例如多个学生对应多门课程,或者多个用户对应多个角色,那他们之间的关系如何维护呢? 这时候就需要第三方来维护两者之间的关系。例如:
简单的说点就是多对多的关系需要一张关系表来维护。通过一张关系表分别建立与另外两张表的一对多的关系就OK了。例如用户和角色之间,通过用户角色关系表分别建立了与用户表、角色表之间的关系。如此看多对多的关系其实就是演化了的一对多或者多对一的关系。
下面就上面这这种情形进行了实战,首先分别建立两个实体类,分别是用户类User、角色类Role(这里头需要注意的是,使用Set集合建立users和roles的属性)。然后紧接着就是将这这两个类通过用户角色分别建立与用户和角色建立联系,这时候就需要用到many-to-many的标签。下面是相关代码的展示:
这样便建立了用户和角色之间的多对多的关系,虽然在Java代码中只建立了两个类,一个User,一个Role,但是打开数据库你会发现,生成了三张表分别是tb_user,tb_role,tb_user_role,其中tb_user_role就是通过Set集合中many-to-many建立了user和role之间的关系表。