2012-02-26 60 views
0

嗨我開發一個事件地點的在線預訂我的問題是在票務模塊,如果客戶預訂了兩個功能室在一張票我不知道我的數據庫,如果它是正常化我只想成爲當然請留下數據庫改進意見正常化的預訂數據庫

create table RESERVATIONS (
PK reservation_id 
lname, 
fname, 
contact, 
email, 
date, 
timeStart, 
timeEnd 
numGuest, 
total) 

create table FUNCTIONROOMS (
PK function_id, 
FK functionroom_id, 
FK reservation_id) 

create table FUNCTIONROOMDETAILS(
PK functionroom_id, 
functionName, 
functionPrice, 
functionStatus) 

即時計劃這個查詢是我的數據庫規範化?或不是

select functionRoom.functionRoom_id 
from reservations, functionRoom 
where reservation.reservation_id = functionRoom.reservation_id 
and reservation_id = 'reservation_id' 
+1

規範化與預期查詢無關;有幾種形式的正常化; 'RESERVATIONS'似乎沒有'reservation_id'列。哦,你應該接受一些答案。 – 2012-02-26 07:41:43

+0

謝謝我忘了添加reservation_id,但它已經更新了我的帖子:), – Led 2012-02-26 07:52:57

+0

桌子上的PRIMARY鍵是什麼?表格之間有什麼關係('FOREIGN'鍵)?這些表格代表什麼?表示客房,客戶,活動(您在問題中提到的)的表格在哪裏? – 2012-02-26 08:40:57

回答

1

您的表似乎沒有被標準化,在保留中沒有明顯的主鍵。

規範化是一個相當的話題,並且有幾個層次的正常形式,你可以使用你需要的。

正如Jim Garrison在評論中所說的查詢無法正常化,所以你最後一個問題沒有一個明確的答案。

+0

我忘了添加reservation_id,但是我會更新帖子,我可以問我的數據庫是否正確嗎? – Led 2012-02-26 07:54:23

+0

恐怕不是。有幾種標準化水平(正常形式)。您的數據庫可能處於第一種正常形式,但不在第二種,也可能在第二種,但不在第三種。在第一種情況下,你的數據庫甚至不是第一種形式,現在看起來它可能是第一種。如果你想了解更多關於規範化的信息,請在網上找到解釋(維基百科等),它可以幫助你很多。如果您提供有關表和數據類型的更多詳細信息,可能會更好,如@sqlvogel的評論中所述。 – Victor 2012-02-26 14:27:21