ER图表用于化学反应

时间:2014-01-19 12:47:14

标签: database database-design entity-relationship

我必须设计一个用于存储化学反应数据的数据库。我有3个实体:化学,反应和条件。

我也设计了ER图。但它似乎并不完美。请说明以下ER图的缺陷并提出改进建议。

enter image description here

2 个答案:

答案 0 :(得分:3)

反应和条件之间应该存在关联,因为在特定条件下会发生反应,而且你必须指定关系的类型。

答案 1 :(得分:1)

在我看来,化学品,反应和条件之间的关系应该是三元的,反应和化学品之间的另一个关系应该代表生产的化学品。以下是声明:“化学品在某些条件下会发生反应。反应产生化学物质。”

以下是表示它的方法:

Ternary relation

但是,正如本网站http://www.databasedesign.co.uk/bookdatabasesafirstcourse/chap3/chap3.htm中的图3.8所描述的,这种关系可以进一步细分为二元关系的集合。这是最终的ER: Ternary relation using 2 binary relations

你的表应该是这样的:

    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"]