我有一个Crops表,其中每行对应一个Crop。
在单独的表格中,我将每行对应一个位置。我想在每个地方的作物中存储每种作物的频率等等。每个作物和每个地点的频率明显不同。 我如何构建位置表?我做了一些阅读并认为外键可能有用,但我不太清楚如何。我是SQL的新手。
我实际上要做的是在我的位置表中存储数据列表。有没有办法让Locations列对应Crops的主键?在更新裁剪时更新位置的解决方案也很棒。
答案 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)
);