2015-04-29 91 views
0

你好,我有一個這樣的數據庫database tables
正如你可以看到它是一個酒店數據庫,其中包含有關預訂,客戶和房間的所有信息。問題在於預訂和BookDates表。每個預訂客戶都可以預訂幾個日期,而且不必以任何順序預訂。這就是爲什麼我必須創建BookDates以避免這種情況enter image description here但是現在我遇到了如何關聯這兩個表的問題,因爲我不能將複合鍵的部分與其他表相關聯。這就是BookDates表現在的樣子。沒有主鍵。 enter image description here複合鍵的一部分作爲避免冗餘的外鍵

+0

「如何關聯這兩張表」。哪兩張桌子? BookDates將BookDate作爲預訂的外鍵。 – Thilo

+0

預訂中沒有BookDate字段,所以我不知道你在說什麼。 –

+0

對不起,我的意思是BookNum。 BookNum是預訂的主要關鍵,並從BookDates引用。 – Thilo

回答

0

如果我正確理解你的問題,可以這樣表述:必須爲表格BookDates和預訂之間的關係創建哪些關係(外鍵和主鍵)?

如果這是我要說的問題,請在BookDates中創建一個結合了兩個字段的主鍵(組合必須是唯一的)。預訂在BookNum上有主鍵。從BookDates的BookNum字段創建外鍵到預訂的BookNum。

還有一點需要注意:我會把我的桌子和田野命名爲單數。例如表格BookDate,字段爲BookNum和Date。每個記錄只包含一個bookDate。當您從表格中檢索多個項目時,您有一個BookDate記錄列表。

+0

是的,你是正確的,你的答案似乎也是正確的。然而,我試圖這樣做,我不知道該怎麼做,因爲它不允許我沿着外鍵(BookNum)製作複合鍵(日期和BookNum)。 –

+0

你想在哪裏實施它? (MySql,Sql服務器,別的?)你收到的錯誤是什麼?你試圖運行的腳本是什麼? – Aster

0

在ER圖中,對於BookDates表,我發現您已經將BookNum標記爲PK & FK。 FK很好,但是使用BookNum字段作爲PK將不起作用,因爲BookNum可能會重複並且不可能是唯一的。您可以考慮以下選項:

  1. 創建於BookNum & BookDates複合主鍵

  2. 添加新BookDatesId作爲主鍵,這可能是一個標識 列,並作爲PK,這將是「代孕鑰匙」。