0
我在旅館預訂中有兩張表,我不能定義他們的caridnality約束。房間表和預訂表之間的關係基數
一個實體室,第二預訂
我認爲這是許多人one.As許多房間可以有一個reservation.However一個房間只能有一個reservation.Or是關係到很多許多?
我在旅館預訂中有兩張表,我不能定義他們的caridnality約束。房間表和預訂表之間的關係基數
一個實體室,第二預訂
我認爲這是許多人one.As許多房間可以有一個reservation.However一個房間只能有一個reservation.Or是關係到很多許多?
由於reservation
需要在特定的時間範圍內創建,因此一個房間可以鏈接到多個預訂,時間不同。所以,這是一個多對多的關係。
假設您在1月預留了房間1,並在3月再次預留了同一個房間。那麼你需要三張桌子,一張用於房間,一張用於預訂,第三張用於關係房間預訂。
在以下示例中,房間1的編號爲,在房間和預定之間的關係表中重複該房間。此外,3月份預訂的ID 在該表中重複,因爲它有兩個房間。
t_rooms
-----------------------------
room_id | room number | ...
-----------------------------
1290 | 1 | ...
1291 | 2 | ...
t_reservations
---------------------------------------------
reservation_id | reservation time frame | ...
---------------------------------------------
2055 | in January | ...
2056 | in March | ...
t_rooms_reservations
------------------------
room_id | reservation_id
------------------------
1290 | 2055
1290 | 2056
1291 | 2056
希望這會有所幫助。 :)
更新:
這將會是很好的檢查了這一點https://en.wikipedia.org/wiki/Database_normalization充分了解如何讓你沒有或最小冗餘的數據庫設計。
很多:) :) 但不會這是round.many房間有一個保留? 我的預訂表包括cust_id(客戶),room_id,預訂ID,checkindate,checkoutdate。 – Sleepingbeauty
在這個例子中,預訂2056有很多房間1(1290)和2(1291)。 – tiomno
這是多對多嗎?有人請澄清? – Sleepingbeauty