有人可以確保我的數據庫是第三範式,如果不是,解釋爲什麼不呢? 我需要數據庫只有3個表。所以在這裏,它是:數據庫第三範式
Customer No. (PK) Store No. (PK) Sale No. (PK)
Name Location Customer No. (FK)
Telephone Revenue Store No. (FK)
Address Total
Purchases($) Paid
Store No.
有人可以確保我的數據庫是第三範式,如果不是,解釋爲什麼不呢? 我需要數據庫只有3個表。所以在這裏,它是:數據庫第三範式
Customer No. (PK) Store No. (PK) Sale No. (PK)
Name Location Customer No. (FK)
Telephone Revenue Store No. (FK)
Address Total
Purchases($) Paid
Store No.
這是你的三個表應該是什麼:表1:客戶
Customer No. (PK)
Name
Telephone
Address
然後表2:商店
Store no. (PK)
Location
則表3:銷售
Sale No. (PK)
Customer No (FK)
Store No (FK)
Total
Paid_yes_no
如果您試圖通過Paid
列追蹤部分付款等,那麼它將是一個單獨的表格(以及更復雜的數據庫)。但是,如果您的Paid
欄只是表明賬單是否已經支付,上述應該可以工作。
也許你需要一個Date
領域有作爲?
好吧,我已經打算付費列是一個布爾數據類型。謝謝你的幫助! – Steve2056726 2013-02-09 09:52:18
標記我的答案正確,然後! :) – 2013-02-09 09:53:31
有幾個問題,其中一些可能是因爲規範是家庭作業,而不是真實的世界。
Store No.
是一個重複的列這是合理的期望,與多個存儲業務有誰使用多個商店的客戶 - 除非你的規範說,否則在這種情況下,分類(命名)應該擴大,可以考慮第一家店鋪號碼或家店鋪號碼改爲。如果它仍然存在,它應該被標記爲外鍵。Purchases($)
是這將改變其他數據依賴。由於它來源於其他信息,所以不應該存儲它。Address
不是一列 - 它有多個部分,如街道,城市,州,國家&郵政編碼可能需要額外的表格細節,以完全滿足第二範式。同樣Telephone
不可能只是一個數字。每次你需要知道應該出現一次且唯一的事情。如果你能從別的東西算出來,你應該這樣做,而不是存儲答案。在現實世界中,您有時可能會將某些信息緩存在表中或進行批處理以獲得性能,但這些信息稍後會應用並且僅在必要時應用。
數據庫規範化的簡要概述爲http://databases.about.com/od/specificproducts/a/normalization.htm,你或許應該通過再加工項目前。
這不是 - 在「購買」將是一個持續的。如果我改成了總採購會的問題被解決了應該有自己的表(也許是鏈接到銷售表?) – 2013-02-09 09:06:29
增量值的列表? – Steve2056726 2013-02-09 09:25:59