多对多的关系:如何将不同的实体与同一个实体联系起来

时间:2014-03-04 16:10:44

标签: mysql sql

有些公司或人都可以订阅服务:

        <--> copany subscription rel <--> company
Service 
        <--> person subscription rel <--> person

考虑我也有一堆表链接到订阅表(条件,调查等)。但我无法链接这些有两个订阅表的表。

所以我想用这个解决方案:

                          <--> company
Service <--> suvscription 
                          <--> person

现在的问题是我在订阅中有两个ID(id_person和id_company),链接到两个表(其中一个为null)。所以它仍然不是一个好的解决方案。

你建议我做什么?

2 个答案:

答案 0 :(得分:0)

我认为两种关系是更好的方式。

答案 1 :(得分:0)

为什么不在另一个表中单独存储每个实体与服务的关系,如下所示:

COMPANY_SUBSCRIPTION

COMPANY_ID |的service_id

PERSON_SUBSCRIPTION

为person_id |的service_id

对于上面这两个表,两列都成为您的主键,并且几个公司或人可以绑定到同一服务。

公司

company_id | company_name ..

PERSON

为person_id | PERSON_NAME ...

SERVICE

的service_id |服务名..