2013-12-08 31 views
0

我只是想看看林基於以下FD我正常正常嗎?

enter image description here

正確歸我的桌子下面是我想出了2NF和3NF後的表。

Table 1 - (__Client ID__,CLient Name, VetID) 
Table 2 - (__Client ID__,__Pet ID__, Pet Name, Pet wt) 
Table 3 - (__Vet ID__, Vet Name) 

正確的結構將讚賞與解釋,如果我的錯誤。謝謝!

跟帖:可以在不同的表結構正常化的結果(取決於你如何做到這一點)

編輯:我應該有標籤的家庭作業(不能夠)。基本上我試圖弄清楚爲什麼我的解決方案與此處發佈的解決方案不同http://tinypic.com/r/2nqtv7b/5

+0

@ A4L:謝謝,因爲我的聲望,它不允許我添加圖像。 – user3080633

+0

似乎沒問題。 2NF和3NF的規範化不能朝不同的方向發展 - 規範化的表格應該看起來一樣。如果其他標準化過程不完整,唯一的區別將會發生(期望顯而易見的名稱和列的順序)。 –

+0

寵物可以更換所有者。如果你記錄寵物的具體信息,這個關係應該是多對多的。如果您只是將寵物作爲所有者的財產感興趣,那麼您目前的設計就沒有問題。 – Andomar

回答

0

我在客戶關係(表1)中沒有看到VetID屬於此表。這是因爲,VetID不依賴於ClientID - 我不知道爲什麼你說有部分依賴?在表2(寵物表)中,您有兩種選擇:PK,PetID或PetID + ClientID。我們沒有關於PetID的信息以及它是如何生成的,因此假設組合鍵是(更安全)。但是,組合鍵並不是您在實際應用中的首選。

這裏似乎缺少的是模式的目的。我想這可能是獸醫診所的模式。我希望你想記錄客戶和他/她的寵物的每一次訪問。在這種情況下,您需要訪問關係(表4)。

+0

請參閱編輯的問題。 – user3080633

+0

如果您的情況是每個客戶都有特定的獸醫處理,那麼在表1中包含vetid是正確的。 – NoChance

0

我會做這樣的事情

只有客戶詳細
表1 - (客戶端ID,客戶名稱,其他客戶端列)

只寵物詳細
表2 - (寵物編號,寵物名稱_奧特寵物列)

只有獸醫的詳細信息
表3 - (獸醫ID,獸醫名稱,其他獸醫列)

哪些客戶端具有寵物和什麼獸醫他們去
表4 - (ID,獸醫 ID,客戶端ID,寵物ID)