MySQL - 如何创建复合表?

时间:2015-04-14 12:20:51

标签: mysql database command

我是MySQL新手,我是在创建一个管理糖尿病患者信息的数据库。我有6个表,这里重要的是3个表,diabetic表,diabetic_profile表和medication_profile表。

最后一个表(medication_profile)应该是一个复合表,它将有两个主外键。这些外键是diabetic_iddiabetic)和profile_iddiabetic_profile)。将其转换为MySQL代码对我来说是困难的部分。我尝试了很多方法,但还不能实现。下面是我使用的sql命令:

CREATE TABLE Medication_Profile (
    medication_type VARCHAR(10) NOT NULL,
    profile_id INT NOT NULL,
    diabetic int NOT NULL,
    times_a_day NUMERIC(1) NOT NULL,
    dose VARCHAR(20) NOT NULL,
    PRIMARY KEY (medication_type, profile_id, diabetic),
    FOREIGN KEY (profile_id, diabetic)
    REFERENCES Diabetic_Profile (profile_id, diabetic_id)

);

请注意,此表中的diabetic_id已经是Diabetic_profile表中存在的外键。

那么您可以提供任何建议吗?

提前致谢

1 个答案:

答案 0 :(得分:0)

每个外键都需要一个单独的FOREIGN KEY子句,因为它们引用了不同的表。

FOREIGN KEY (diabetic_id) REFERENCES diabetic (diabetic_id),
FOREIGN KEY (profile_id) REFERENCES diabetic_profile (profile_id)