2012-09-19 24 views
1

本學期我正在學習數據庫。 e-r模型的作業讓我很困惑。

的功課是借鑑了E-R圖約菜市場:菜市場有攤位號的集合。每個攤位都有一個名稱(唯一的),並出售至少一種蔬菜(每種蔬菜都有一個名稱)。每個攤位都以自己特定的價格出售每種蔬菜。每個農場種植一些(至少一個,但不是全部)的蔬菜,但蔬菜必須由至少一個農場種植。每個農場都有一個名稱(唯一)和地址。每個攤位都以他們同意的特定價格從一個農場購買每種蔬菜。

我的問題是,如何來描述需求約束「(至少一個,但不是全部)」?
另一個問題是,由於蔬菜沒有主要關鍵或歧視,他們應該被視爲實體嗎?還是應該把它們當作屬性來對待?如何描述e-r圖中的特定基數約束?

這裏是我的答案: http://fmn.rrimg.com/fmn056/20120919/2325/large_xnSN_416500023eb6125e.jpg

+0

有你這麼遠得出的任何圖?另外,是否有任何特定的符號要求? – WojtusJ

+0

我只是上傳我的答案。我們被要求使用書_Database System Concepts_中使用的符號。 – cachuanghu

回答

2

Ad.1 據我知道這是不可能放在像至少一個ERD圖信息,但不是所有,我只想標誌的關係如一個或多個,這是可能的。我唯一想到的就是發表適當的評論,說明這一要求。

Ad。 2 是,蔬菜在我看來應該表示爲分離的實體。如果你想把它作爲一個屬性,你把它作爲實體「Farm_grows」的一個屬性來做,但是你不能保存唯一性,你將不得不有一些關鍵的東西,最後最糟糕的是,它不會是3NF。

我的建議是在下圖 - 不幸的是,我沒有支持你的符號的工具(我知道它可以在Visio中完成,但你不應該有任何問題將我的符號翻譯成你的) 。

Diagram

相比於你的不同之處在於我有SELLBUY,這是STALL_VEGETABLE一個關係。爲什麼?由於這種要求:

「每個攤位只從一個農場在他們已經約定特定價格買入的每個蔬菜。」

我的模型保留了失速只銷售這些蔬菜,它買了,並且還因爲stall_namevegetable_name被withing PK,這是不可能的地攤上買來自不同農場的一種蔬菜 - 你的模型允許那。

+0

Tks幫助我解決問題。您的解決方案令人印象深刻我還通過你的回答瞭解了兩個關係之間關係的表達方式! – cachuanghu

+0

沒問題,祝你好運! :-) – WojtusJ