我有下面的表格,我應該把它轉換成2NF。轉換表格爲2NF - 奇怪的表格轉換?
我有一個答案,我去了:
技能:員工,技能
位置:員工,當前工作 位置
我有一種感覺,我錯了這個^上面^雖然。
也可以解釋1NF,2NF和3NF之間的區別。我知道1先來,你必須把它分成更小的表格,但想要一個很好的描述來幫助我更好地理解。謝謝
我有下面的表格,我應該把它轉換成2NF。轉換表格爲2NF - 奇怪的表格轉換?
我有一個答案,我去了:
技能:員工,技能
位置:員工,當前工作 位置
我有一種感覺,我錯了這個^上面^雖然。
也可以解釋1NF,2NF和3NF之間的區別。我知道1先來,你必須把它分成更小的表格,但想要一個很好的描述來幫助我更好地理解。謝謝
Employee Table
EmployeeID | Name
1 | Jones
2 | Bravo
3 | Ellis
4 | Harrison
Skills Table
SkillId | Skill
1 | Typing
2 | Shorthand
3 | Whittling
4 | Light Cleaning
5 | Alchemy
6 | Juggling
Location Table
LocationId | Name
1 | 114 Main Street
2 | 73 Industrial Way
EmployeeSkill Table
EmployeeId | LocationId | SkillId | SkillName
1 | 1 | 1 | Typing
1 | 1 | 2 | Shorthand
1 | 1 | 3 | Whittling
2 | 2 | 4 | Light Cleaning
3 | 2 | 5 | Alchemy
3 | 2 | 6 | Juggling
4 | 2 | 4 | Light Cleaning
在EmployeeSkill表中,主鍵將是EmployeeId + LocationId,這會爲您提供他們在該位置擁有的技能。在這個例子中包括SkillName列違反了3NF。 這種做法實際上有時用於數據庫設計(並稱爲「非規範化」),以減少連接以增加通常一起使用的性能讀取數據。
通常這隻在用於報告的表格中完成。
你正在介紹保證唯一的密鑰,這是很好的一般的做法,但與作業無關,並不清楚分配SkillId是必要的。我也不喜歡加入體現一對一和一對多關係的表格。 –
是的,很難確切知道最終格式可能是什麼,是否依賴於某個位置的技能? – BlackICE
-1。在家庭作業和教育方面,學生需要與作業中的專欄一起工作。他們不允許引入新的專欄。其中一個風險是數字牆掩蓋了真正發生的事情。另一種情況是,引入帶有id號的新列似乎向學生建議「正常化」意味着「用字符串替代id號」。在OP中沒有指定 –
我是新學習2NF,但我已經解決了這樣的答案。讓我知道這是否正確,以便我能理解我的錯誤並多練習。
只有兩個表。由於
NF差異:http://stackoverflow.com/questions/723998/can-someone-please-give-an-example-of-1nf-2nf-and-3nf-in-plain-english – BlackICE
@大衛感謝,你能告訴我,我是否與上面的一樣正確? – maclunian
從帖子中的內容看起來像3NF。這並不一定意味着它會做你想做的:) :) – BlackICE