簡體   English   中英

Access數據庫規范化

[英]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表和替換authorIdauthorNameintersection表。

我認為您在這里描述的不是規范化。 在規范化的數據庫中,您將擁有

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM