两个实体麻烦

时间:2014-09-23 04:46:48

标签: mysql data-modeling

我有两个链接到蠕虫链接表的实体,两个表中的主键在新表,服务和成员中引用,形成Member_Services。在服务表中,我有一个名为服务请求的列,以及服务ID,成员请求这些服务。

问题是,我将数据输入到两个父表中,但是我对链接表的数据有疑问。有些会员要求提供多项服务,我无法多次输入会员ID。有人可以协助告诉我如何更改我的表格,以便第二次使用不同的请求服务来接受会员详细信息...

Create Table Member_Services
(
Services_ID integer(10) not null,
Member_ID integer(10) not null,
Primary Key (Services_ID),
Unique Key (Member_ID),
Foreign Key (Services_ID)
References Services(Services_ID),
Foreign Key (Member_ID)
References Member(Member_ID));

这是表格的代码

可以有人协助

1 个答案:

答案 0 :(得分:0)

您的问题是密钥的声明。您有两个单列键,它只允许给定Service的一个实例和给定成员的一个实例。您需要的是一个复合主键,用于强制成员和服务的组合的唯一性,但允许多次出现。

Create Table Member_Services
(
    Services_ID integer(10) not null,
    Member_ID integer(10) not null,
    Primary Key (Services_ID, Member_ID),
    Foreign Key (Services_ID)
        References Services(Services_ID),
    Foreign Key (Member_ID)
        References Member(Member_ID)
);

这将允许一个会员拥有多个服务,并且还允许多个会员使用同一服务。