2013-07-03 23 views
0

有人可以確認這是否適合使用外鍵(這只是一個例子):SQL外鍵,是我的例子一個合適的用法?

申請預訂會議室;

tblBooking -> pkName,Time,fkRoomName; 
tblRoom -> pkRoomName, RoomNumber; 

的UI將填充使用pkRoomName數據的下拉菜單中,當預約,就這樣選定pkRoomName會去tblBooking fkRoomName。

我的理解正確嗎?

+1

是的。這對我來說看起來像一個合理的結構。 fk-> pk關係似乎是正確的。 –

+1

耶看起來不錯...但是在真實的事情考慮把預訂ID在那裏...可能甚至房間ID以及:) –

回答

0

是的,如果您想確保指定房間的任何預訂指向已知房間,那麼這是適當使用外鍵。

但是,請注意,只聲明外鍵關係與要求所有預訂指定房間不同。在tblBooking中,fkRoomName的空值將被允許。如果您希望指定一個房間,則還必須在fkRoomName字段上使用NOT NULL約束。

最後是一個小問題的語義。我不會在RoomName的列名中使用「fk」。這是因爲外鍵與它所包含的列是不同的實體。擁有多個列的外鍵並不少見,並且在單個表中使用多個不同的外鍵關係也並不罕見。因此,fkRoomName是外鍵本身的適當名稱,但對於列而言並非如此。

+0

太好了,謝謝你那一點。我剛剛讀完了外鍵,只需要一點點信心,就能理解大局;我的讀物仍在繼續! –