2010-03-04 76 views
1

我爲我的數據庫設計幾乎是完美的,但有一個問題:問題與表格的佈局(數據庫設計)

http://i306.photobucket.com/albums/nn269/MCTWEED15/newDatabase.jpg

正如你所看到的 - 一本書的副本需要的位置。然而,要求說

如果它是一個短期貸款,然後書架 將不會在貨架/行上找到。 這意味着,與當前的結構 我將有行和 保質如果ShortLoan是真的

我怎樣才能改變我的設計NULL值,以防止這種情況?

感謝

回答

0

我覺得ShortLoan應該是BookCopy(甚至書),而不是位置的屬性。這意味着BookCopy上的LocationID將是可選的。設計一個沒有NULL列的數據模型非常困難。

編輯

「好性」是衡量一個很難的事情,當涉及到數據模型,和雙所以當我們不知道的業務需求。我不明白ShortLoan旗下的規則,所以我不能真正告訴你。但在我看來,一個獲得幾本熱門書籍(新哈利波特)的圖書館可能會標記ShortLoan的副本,以便更多的借閱者有機會閱讀它,但不是所有的副本,以便讓慢讀者有足夠的時間來完成它。

另一個問題是:如果ShortLoan標誌的設置確定是否可以設置BookCopy.LocationID標誌,那麼最好是如果該標誌位於該表上,因爲該安排允許我們強制執行檢查約束當列位於兩個獨立的表格上時,我們無法做到這一點。物理上的考慮不應該驅動邏輯數據模型,但是一旦我們開始考慮表格而不是實體,它們就會適用。

編輯2

我想ShortLoan意味着本書只能借了限售期(例如,三個幾天而不是標準的3個星期),而貸款是實際交易。因此,根據我的理解,BookCopy.ShortLoan標誌將確定Loan.ReturnDate,但它本身不屬於Loan的財產。

這就是爲什麼大多數數據建模項目通常最終圍繞白板進行熱烈討論的原因!

+0

所以說我將shortLoan轉移到book,是否可以在bookcopy中設置位置id作爲可選 感謝apc – haz 2010-03-04 12:43:29

+0

另外我想也許它應該是一個貸款的屬性? – haz 2010-03-04 12:46:53