我必须设计一个储存化学反应数据的数据库。我有三个实体:化学,反应和条件。
我还设计了ER图。但看上去并不完美。请指出以下ER图的缺陷并提出改进建议。

发布于 2014-01-19 12:55:52
反应和条件之间应该有一种关系,因为反应发生在特定的条件下,而且你还必须指定关系的类型。
发布于 2014-01-21 17:15:27
在我看来,化学品、反应和条件之间的关系应该是三元的,而反应与化学品之间的关系应该是另一种关系,以代表所生产的化学品。以下是声明:“化学品在特定条件下反应,反应产生化学物质。”
下面是一种表示它的方法:

但是,如图3.8所示,http://www.databasedesign.co.uk/bookdatabasesafirstcourse/chap3/chap3.htm描述了这种关系,可以进一步分解为二进制关系的集合。这是最后一个ER:

你的桌子应该是这样的:
CHEMICALS(chemicalId, ...)
REACTIONS(reactionId, conditionId,...) [conditionId here represents the 1-M "UNDER"]
CONDITIONS(confitionId, ...)
CHEMICALS_REACT(reactionId, chemicalId) [This table represents the M-M "REACT"]
REACTION_PROD_CHEM(reactionId, chemicalId) [This table represents the M-M "PRODUCE"]https://stackoverflow.com/questions/21216937
复制相似问题