在SQL表中创建映射到其他表

时间:2017-08-08 05:56:53

标签: mysql sql .net

我有一个Crops表,其中每行对应一个Crop。

在单独的表格中,我将每行对应一个位置。我想在每个地方的作物中存储每种作物的频率等等。每个作物和每个地点的频率明显不同。 我如何构建位置表?我做了一些阅读并认为外键可能有用,但我不太清楚如何。我是SQL的新手。

我实际上要做的是在我的位置表中存储数据列表。有没有办法让Locations列对应Crops的主键?在更新裁剪时更新位置的解决方案也很棒。

1 个答案:

答案 0 :(得分:2)

您需要一个单独的多对多表:

CREATE TABLE CropLocations (
    crop_id INT NOT NULL,
    location_id INT NOT NULL,
    frequency INT,
    PRIMARY KEY (crop_id, location_id),
    CONSTRAINT FOREIGN KEY (crop_id) REFERENCES Crops (id),
    CONSTRAINT FOREIGN KEY (location_id) REFERENCES Locations (id)
);