【问题标题】:How to design 1:1 and 1:M relation如何设计 1:1 和 1:M 关系
【发布时间】:2014-01-02 01:42:07
【问题描述】:

我有以下情况:
- 一位客户只能拥有一项服务
-一个服务可以在不同的地方进行

我想在服务名称更改时使用规范化(所以一个客户应该有一个 FK 到服务表?)。我无法想象在这种情况下如何保持 1:1(我 24 小时都醒着,几乎没有思考,但需要完成它)

正如我在这里所读到的那样,我问的是 1-1 总是可以是一张桌子,一个对象。但我相信事实并非如此,例如在我给出的示例中 - 客户只有一项服务,但服务名称可能会更改,因此将仅引用服务的 FK 放入客户表中是否正确?

【问题讨论】:

    标签: database database-design data-modeling


    【解决方案1】:

    一个客户只能拥有一项服务

    “Can”意味着 0,1:1 的关系。您将引用服务表行的可空外键放在客户行中。

    一个服务可以在不同的地方进行

    对于 n:m 关系,其中 n 可以是 1,您创建一个 junction table 来保存 Service 表和 Place 表的键。

    ServicePlace
    ------------
    Service ID
    Place ID
    

    主(集群)键是服务 ID 和场所 ID。如果一个地点可以有多个服务,您还可以在地点 ID 和服务 ID 上创建一个索引。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-08-17
      • 2018-08-02
      • 1970-01-01
      • 1970-01-01
      • 2015-05-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多