1

在设计类图时,我对基数/多重性感到困惑。我的主要困惑是何时表示 1---* 关系。例如,在乘客和座位等级的情况下,乘客将被分配到一个座位,因为座位可以在 A POINT IN TIME 分配给一名乘客,但在其存在的一段时间内,它可以分配给许多乘客。

那么座位--->乘客应该是1-1还是1-*?

4

2 回答 2

1

让我们总结一下:

  • 在一个精确的时刻:
    • 每个Passenger将被分配给恰好一Seat(1) 个。开放式问题:Passenger分配之前是否已经存在(即 1 或 0..1)?
    • 每个Seat都可以分配一个Passenger,但它可能保持为空(所以 0..1)
  • 在他们的一生中:
    • 每个Passenger都可以分配到多个座位(每个航班一个)
    • 每个都可以分配Seat很多。Passenger

Seat结论:和之间的关系Passenger*-*(多对多)

于 2016-04-01T15:43:13.073 回答
-1

这完全取决于你的模型。

  • 如果我们为每次旅行的预订建模,它将是座位 1 --- 0..1
    乘客。
  • 如果我们对每次旅行的预订进行建模,并且每个班级只有几个座位(但未分配特定座位),则可以是 SeatClass 1 --- 0..SeatClass.availableSeats 乘客。
  • 如果我们正在建模一个系统来分析乘客行为(例如,为特定乘客提供最佳座位),它将是乘客 1 <>--- * Seat。
  • 如果我们正在建模一个系统来分析座位利用率,它可以是座位 1 <>--- * 乘客。

等等

我可以想象很多其他的可能性。

这个想法是你为一个特定的系统建模,你需要代表特定的业务需求。多样性将取决于此。根据经验,您对某个时间点的情况感兴趣(请注意,在我的最后两个示例中,您正在处理某个时间点的座位分配历史记录)。

所以我的结论是:没有简单的答案。

于 2016-05-17T19:20:37.263 回答