如何在数据库中实现一对多和多对多的关系

时间:2013-02-04 05:35:17

标签: database relational-database one-to-many

我有橡胶带的数据,其中一种化合物含有许多化学物质,这些化学物质可以任意组合形成一种新化合物(许多化合物中的一种化学物质)。我创建了一个化合物表和一个化学品表。如何在没有大量重复数据的情况下形成关系表?

2 个答案:

答案 0 :(得分:2)

毫无疑问,如果您进行搜索,网上会有大量的教程。你应该做一些研究或获得一个好的数据库文本。为了帮助您,这里有一个关于您的多对多关系的示例,实现了一对多的表以及相关的CompoundChemical表。

CREATE TABLE Compound
(
  CompoundId INT NOT NULL PRIMARY KEY,
  Name VARCHAR(100) NOT NULL
);

CREATE TABLE Chemical
(
  ChemicalId INT NOT NULL PRIMARY KEY,
  Name VARCHAR(100) NOT NULL
)

CREATE TABLE CompoundChemical
(
  CompoundId INT NOT NULL,
  ChemicalId INT NOT NULL,
  PRIMARY KEY (CompoundId, ChemicalId),
  FOREIGN KEY fk1 (CompoundId) REFERENCES Compound(CompoundId),
  FOREIGN KEY fk2 (ChemicalId) REFERENCES Chemical(ChemicalId)
)

答案 1 :(得分:0)

添加表格结构会有所帮助,但你可以选择这样的东西

为化合物创建一个表,为化学品创建一个表是好的,但是你很可能还需要一个表,因为每个化合物中没有固定数量的化学物质。

也许表名为Substances的物质具有以下引用化学品和计算的列。 (ChemicalID,CompoundID)