0

我有以下實體及其屬性數據庫的實體關係圖轉換圖到數據庫表和Seat。在SeatFlight之間存在一對多關係(即,一個Flight可以通過Reservation具有許多Seat)。實體關係設計一個一對多的關係

將這些關係分解爲表格時,由於這是一對多關係,因此我知道Seat可以使用Reservation,因此數據庫中不需要特定的Reservation表。

不過,我的問題是...在表Seat,我知道放SeatFlightSeatNumberDate)主鍵,但我還包括Reservation關係的非主屬性?

這裏是我的兩個選擇,我玩弄與周圍:

Seat(SeatNumber, Date) 
Seat(SeatNumber, Date, CustomerName, CustomerPhone) 

哪一個是正確的?謝謝您的幫助!

+0

有人嗎?任何幫助非常感謝......我知道答案是在我的鼻子下面,我只是不知道從實體關係設計的角度來看哪個表是正確的。 – user1462294

回答

0

在我看來,鑑於預訂實際上有商業數據(例如客戶信息),預訂表應該消費座位。

像這樣:

Flight: 
Date (primary key) 
Num_available_seats 

Reservation: 
CustomerName 
CustomerPhone 
SeatNumber 
Date (FK from 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 

我希望這有助於。

1

爲了提高數據的完整性,我會建議多一點約束:

enter image description here