CREATE TABLE if not exists PatientDetails
( pt_id varchar(15) not null,
pt_name varchar(20) not null,
pt_sname varchar(20) not null,
pt_age numeric,
primary key(pt_id));
create table if not exists who_staging.Symptom (
sypt_id varchar(12) not null,
symptom varchar(20) not null,
primary key(sypt_id)
);
create table if not exists Medicine(
medi_id varchar(12) not null,
medi_name varchar(20) not null,
sypt_id varchar(12),
foreign key(sypt_id) references who_staging.symptom(sypt_id),
primary key(medi_id)
);
create table if not exists who_staging.FollowUp(
F_id varchar(10) not null,
pt_id varchar(15),
sypt_id varchar(12),
medi_id varchar(12),
foreign key(pt_id) references who_staging.PatientDetails(pt_id),
foreign key(sypt_id) references who_staging.symptom(sypt_id),
foreign key(medi_id) references who_staging.Medicine(medi_id),
primary key(F_id)
);
此引用是否适用于以下内容?
我非常感谢任何帮助
答案 0 :(得分:0)
我将假设pt_id来自其他系统,否则@drew评论是更好的选择。后续表应该具有自动增加int id,因为您的系统会创建它们,并且自动创建唯一键更好。
1是正确的,因为4是正确的 - 您的模式允许每位患者进行多次随访,每次随访都是针对该患者的一种症状和一种药物。
2是正确的,因为可能存在多个具有相同症状的药物行
3是正确的,因为可能存在多个具有不同症状的药物行
5将起作用,因此将选择患者ID并显示该患者的所有随访。
所以,总的来说,这是一个好的开始,但考虑关键的建议。您可能会找到一些方法来改进。