我剛開始學習關於數據庫正常化的問題,並對我的一個表格有疑問。我的數據庫現在的結構非常糟糕,其中一個原因是因爲我有一張看起來像這樣的表。數據庫正常化問題
客戶表
ID | Date_Entered | First_Name | Middle_Name | Last_Name | Maiden_Name
...
Address__street_dmv | Address_city_dmv | Address_state_dmv | Address_zip_dmv
...
Address__street_source2 | Address_state_source2 | Address_city_source2 | etc
。
由於我的公司從多個來源獲取地址數據,所以地址在繼續。但是,當然,這些地址中的一些對於我們的一些客戶而言將是空的。所以我想我需要一個單獨的地址表,像這樣連接到Customers表。
。
地址
ID | Number | Street | State | Zip | Source (drop down menu)
但後來我想源將冗餘數據。那麼,我需要一個單獨的源表嗎?
來源
Source_ID | Source
並更改地址表中也是這樣嗎?
ID | Number | Street | State | Zip | Source _ID (drop down)
它似乎不正確,因爲現在Source_ID是多餘的...請幫助。如果
紅利點,你能告訴我是否我應該包括,因爲這些客戶表少女和中東的名字也可能被空(如果沒有,如何將新表結構?)
對不起作爲一個noob。
嘿,你走在正確的軌道上,不會感覺不好。我們在這裏幫助(特別是措辭很好,具體問題如此)。雖然我認爲,從我一直聽說Access的東西,有些人會推薦一個不同的數據庫產品......(從來沒有用過它,所以不能真正說)。 –
數據庫規範化旨在使您的數據更可靠,更易於使用,並且您的結構更易於理解。你應該絕對規範你的數據來實現這三個目標。但是,很可能會過度規範化數據庫。如果爲了可靠性而爲一條信息創建另一個表並不是必要的,並且只是在常見查詢中強制另一個聯接,那麼不要這樣做。處女/中間名是其中的一種情況,只要將它放在主表中即可。 – Banjoe
您需要複製像Source_ID這樣的字段,以便它可以允許您加入兩個不同表的記錄。這是對數據進行復制的例外,這是關係數據庫的工作原理。 – JeffO