我这学期正在学习数据库。 e-r模型的作业让我很困惑
家庭作业正在绘制关于蔬菜市场的e-r图:蔬菜市场有一系列编号的摊位。每个摊位都有一个名称(独特),至少出售一种蔬菜(每种蔬菜都有一个名字)。每个摊位都以自己特定的价格出售每种蔬菜。每个农场种植一些 (至少一个,但不是全部) 蔬菜,但必须由至少一个农场种植蔬菜。每个服务器场都有一个名称(唯一)和地址。每个摊位以他们同意的特定价格从一个农场购买每种蔬菜。
我的问题是如何描述要求中的“(至少一个,但不是全部)”约束?
另一个问题是,由于蔬菜没有主键或鉴别符,它们是否应被视为实体?或者他们应该被视为其他类似的属性吗?
这是我的答案: http://fmn.rrimg.com/fmn056/20120919/2325/large_xnSN_416500023eb6125e.jpg
答案 0 :(得分:2)
Ad.1 据我所知,不可能在ERD图上放置至少一个但不是全部的信息,我只想将关系标记为一个或多个,是可能的。我想到的唯一一件事是提出适当的评论,说明要求。
广告。 2 是的,我认为蔬菜应该表示为一个独立的实体。如果你想把它作为属性放置,你可以将它作为实体“Farm_grows”的属性来做,但是你将无法保持唯一性,你将不得不拥有一些关键字,最后最糟糕的是,它不会是3NF。
我的命题在下面的图表中 - 不幸的是我没有一个支持你的符号的工具(我知道在Visio中可以做到这一点,但你不应该有任何问题将我的符号翻译成你的)。
与您的比较的不同之处在于,我与卖出和买入有一个关系,即 STALL_VEGETABLE 。为什么会这样?由于这个要求:
“每个摊位只按照他们同意的特定价格从一个农场购买每种蔬菜。”
我的模型保留了Stall仅销售它所购买的那些蔬菜,而且因为 stall_name 和 vegetable_name 正在使用PK,所以Stall不可能购买来自不同农场的一种蔬菜 - 你的模型允许。