[英]Access Database Normalization
我目前正在嘗試規范化現有數據庫。 我的問題類似於此視頻http://youtu.be/4q-keGvUnag?t=5m1s中大約5分鍾的問題。
他說不做的事情(對於有兩名作者的書有兩列)是我的數據庫存在的問題。 我想知道查詢是否可以修改表,使其僅具有一個作者列,並且每個作者都具有單獨的行。
所以:
(1)[書名] [isbn] [作者#1] [作者#2]
應該是這樣的:
(1)[書名] [isbn] [作者#1]
(2)[書名] [isbn] [作者#2]
我認為由於這種關系是M:N,因此應該有一個書作者關系的交叉表:
書桌
bookId (PK) | bookTitle | isbn | etc...
作者表
authorId (PK) | authorName | etc...
交叉口表
bookId (PK) | authorId (PK) | etc...
從數據庫角度來看,這是最正確的方法。
如果你對作者沒有興趣作為一個實體,則可以跳過authors
表和替換authorId
與authorName
在intersection
表。
我認為您在這里描述的不是規范化。 在規范化的數據庫中,您將擁有
Table1 - bookId, title, isbn, authorId
Table2 - authorId, Name...
Table3 - book_authorId, bookId, authorId <-- assign authors to book
但是對於您的特定問題,您的描述方式,這里您可以做什么。 首先,創建第二條記錄:
Insert into <table> (title, isbn, author#1)
Select title, isbn, author#2 from <table> where not author#2 is null
它在這里描述了http://msdn.microsoft.com/en-us/library/office/bb208861%28v=office.12%29.aspx
現在,您可以刪除列author#2
這些動作應該可以創建您在問題中描述的內容
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.