【问题标题】:Correct way to represent a one-to-one relationship (reference) in UML在 UML 中表示一对一关系(引用)的正确方法
【发布时间】:2012-04-17 18:38:48
【问题描述】:

我有两张表,它们之间是一对一的关系:

Person
 - Id
 - HouseFk

House
 - Id

Person 拥有 House 的外键。请注意,HouseFk 也可以为 NULL。在 UML 中表示这一点的正确方法是什么?我可以想出两种不同的符号:

1 到 0..1:

      1     0..1    
Person----------House

0..1 到 1:

      0..1     1    
Person----------House

它是哪条路,为什么?我真的很困惑,因为我听说一对多关系的键位置颠倒了,这意味着 B 指的是 A,从中可以一对一地推断出来(尽管在我的情况下,这是一对零或一的情况,A指的是B,因此0..1在B侧(第一个)?还是A面(第二)?

谢谢!

【问题讨论】:

    标签: database-design uml


    【解决方案1】:

    你们关系的规则是什么?你需要先定义它。人“拥有”房子?人“住在”房子里?让我们暂时假设它是“拥有”的。然后你有几个选择:

    选项 1:无选择性(强制 1:1):

    - Each Person must own exactly one House
    - Each House must be owned by exactly one Person
    

    这将被表示

           1           1
    Person ------------- House
    

    选项 2a:可选一种方式:

     - Each Person may own at most one House
     - A Person need not own any Houses
     - Each House must be owned by exactly one Person
    

    这将被表示

           1        0..1
    Person ------------- House
    

    选项 2b:另一种方式可选:

     - Each Person must own exactly one House
     - Each House may be owned by at most one Person
     - A House need not be owned by any Person
    

    这将被表示

           0..1        1
    Person ------------- House
    

    选项 3:双向可选:

     - Each Person may own at most one House
     - A Person need not own any Houses
     - Each House may be owned by at most one Person
     - A House need not be owned by any Person
    

    这将被表示

           0..1     0..1
    Person ------------- House
    

    编辑(*)

    您的数据库架构不是上述任何一种。它说:

     - Each Person may own at most one House
     - A Person need not own any Houses
     - Each House may be owned by many People
     - A House need not be owned by any Person
    

    不确定这是否是您想要的......? [如果你不明白为什么大喊]。

    第一次。

    *感谢 ypercube 指出以下 cmets 中的更正。

    【讨论】:

    • 仅当HouseFK 具有UNIQUE 约束时,它是选项3。否则它是选项 4:0..n::0..1
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-10-20
    • 2017-06-15
    • 1970-01-01
    • 1970-01-01
    • 2019-08-22
    • 2013-10-15
    • 2018-03-11
    相关资源
    最近更新 更多