2013-02-04 206 views
1

我有一個橡膠帶的數據,其中一種化合物含有許多化學物質,這些化學物質可以以任意組合結合形成一種新化合物(許多化合物中的一種化學物質)。我爲化合物和化學品創建了一張表。如何在沒有大量數據重複的情況下構建關係表?如何在數據庫中實現一對多和多對多的關係

+0

請上傳我的表結構...........和關係... – andy

回答

0

添加表結構將幫助,但你也許可以用這樣的

創造一個化合物的桌子和一個化學品是好的,但你很可能需要一個多表因爲沒有固定的數量去化學品在每個化合物。

也許表格命名爲物質,其中有以下列引用化學品和化合物。 (ChemicalID,CompoundID)

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) 
)