1

这学期我正在学习数据库。er模型的作业真的让我很困惑。

作业是画关于菜市场的er图:菜市场有一组编号的摊位。每个摊位都有一个名称(唯一的),并且至少出售一种蔬菜(每种都有一个名称)。每个摊位都以自己的特定价格出售每种蔬菜。每个农场种植一些(至少一种,但不是全部)蔬菜,但一种蔬菜必须由至少一个农场种植。每个农场都有一个名称(唯一的)和地址。每个摊位都以他们同意的特定价格从一个农场购买每种蔬菜。

我的问题是如何在需求中描述约束“(至少一个,但不是全部)”?
另一个问题是,既然蔬菜没有主键或鉴别器,它们应该被视为实体吗?还是应该将它们视为属性之类的其他东西?

这是我的答案:( 来源:rrimg.com

4

1 回答 1

2

Ad.1 据我所知,不可能在 ERD 图上放置至少一个但不是全部的信息,我只是将关系标记为一个或多个,这是可能的。我唯一想到的就是发表适当的评论,说明该要求。

广告。2 是的,我认为蔬菜应该被表示为一个独立的实体。如果你想把它作为一个属性,你可以把它作为实体“Farm_grows”的一个属性来做,但是你将无法保持唯一性,无论如何你必须有一些键,最后最糟糕的是,它不会是 3NF。

我的建议在下图中 - 不幸的是,我没有支持您的符号的工具(我知道在 Visio 中可以做到这一点,但是将我的符号转换为您的符号应该没有任何问题)。

图表

与您的不同之处在于,我对SELLBUY有一种关系,即STALL_VEGETABLE。为什么呢?因为这个要求:

“每个摊位都以他们同意的特定价格从一个农场购买每种蔬菜。”

我的模型保留了 Stall 只出售它购买的那些蔬菜,而且因为stall_namevegetable_name是 PK,所以 Stall 不可能从不同的农场购买一种蔬菜 - 你的模型允许这样做。

于 2012-09-19T15:56:47.680 回答