【问题标题】:How to read N:M:K relation (databases)?如何阅读 N:M:K 关系(数据库)?
【发布时间】:2014-08-23 16:37:50
【问题描述】:

我了解 N:M、1:N 和 N:1 关系。

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

你必须如何阅读 N:M:K?是否像 1 个客户可以与 N 个不同的员工一起预订 M 个目的地?但是您也不能为超过一名员工预订同一次旅行,所以如果需要,我该如何用几句话重新表述它?

提前致谢

【问题讨论】:

    标签: database relational-database database-schema cardinality


    【解决方案1】:

    如果我理解正确的话:

    “基本实体”是customersemployeesdestinations

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

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

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

    现在,

    SELECT * FROM bookings WHERE CustomerId = xxx
    

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

    【讨论】:

    • 我在问如何阅读 N:M:K 符号。更具体地说,根据我上面提供的信息,我问如何找出基数是 N:M:K。我询问如何将 N:M:K 关系放入文本描述中。
    • 好吧,不幸的是,您给出的示例是多重 1:N 关系,只是碰巧在关系中具有“1”的一侧是同一个实体。这不是 N:M:K 关系。
    • 你能提供一个 N:M:K 关系的例子并给出它的文字描述(如如何阅读它)?
    • 好的,抱歉,国家/地区示例不是您想要的。怎么样:“人们有手机和相机。每个手机型号都有很多用户使用。每个相机型号也有很多用户使用。每个用户可以同时拥有多部手机和多部相机”。
    • 所以现在我们需要 5 个表:camerasphonesusersphoneUserscameraUsers。是手机:用户:相机。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-08-24
    • 2020-04-28
    • 1970-01-01
    • 1970-01-01
    • 2015-03-05
    • 2017-12-15
    • 1970-01-01
    相关资源
    最近更新 更多