如何阅读N:M:K关系(数据库)?

时间:2014-08-23 16:37:50

标签: database relational-database database-schema cardinality

我理解N:M,1:N和N:1的关系。

假设我们有一家旅行社,并考虑“预订旅行”的关系。涉及此关系的实体是客户,员工和目的地。规则如下:一个客户可以预订多个旅行,并且几个客户可以预订目的地。显然,这种关系是N:M:K。

你怎么读N:M:K?是否有1个客户可以预订N个不同员工的M个目的地?但是你也不能用一个以上的员工预订同一个旅行,所以如果需要的话,如何用几句话来改写呢?

提前致谢

1 个答案:

答案 0 :(得分:0)

如果我理解正确的话:

“基本实体”是customersemployeesdestinations

现在考虑一个booking。它由一个且只有一个客户预订。它只有一个目的地。它也可以由一名且只有一名员工预订。

因此数据库中将有4个表。 bookings表是使用伪语法:

BookingId (PK),
CustomerId (FK of [customers]),
EmployeesId (FK of [employees]),
DestinationId (FK of [destinations])

现在,

SELECT * FROM bookings WHERE CustomerId = xxx

将为您提供同一客户对不同目的地的不同预订,每次预订仅由一名员工进行。与同一员工或同一目的地的预订类似。