我有一个数据库实体关系图,其中包含以下实体及其属性:
Flight:
Date (primary key)
Num_available_seats
Reservation:
CustomerName
CustomerPhone
Seat:
SeatNumber (primary key)
预订是Flight
和Seat
之间的中间关系。 Seat
和Flight
之间存在一对多的关系(即,Flight
可以通过Seat
生成多个Reservation
。< / p>
在将这些关系分解为表时,因为这是一对多的关系,我知道Seat
可以使用Reservation
,因此不需要特定的Reservation
1}}数据库中的表。
但是,我的问题是这个......在Seat
的表格中,我知道要放置Seat
和Flight
(SeatNumber
和{{}的主键1}}),但是我还包括Date
关系的非主要属性吗?
以下是我正在考虑的两个选项:
Reservation
哪一个是正确的?谢谢你的帮助!
答案 0 :(得分:1)
为了提高数据完整性,我会建议更多限制:
答案 1 :(得分:0)
在我看来,假设预订实际上有商业数据(例如客户信息),预订表应该消耗席位。
像这样:
Flight:
Date (primary key)
Num_available_seats
Reservation:
CustomerName
CustomerPhone
SeatNumber
Date (FK from Flight)
抓住座位表。
另外,如果可能的话,我会稍微修改一下Flight表:
Flight:
FlightId (PK)
Date
AirplaneId (this could be a FK from some Airplane table, if it exists, or simply an identifier for the airplane that makes the flight)
Num_available_seats
这会修改您的预约故事:
Reservation:
CustomerName
CustomerPhone
FlightId (FK)
SeatNumber
我希望这会有所帮助。