我们正在努力保存特定外国求职者的家族历史。以下是我们要保存的详细信息。
Familiy Member: Father|Mother|1st Brother| 2nd Brother| 1st Sister| etc etc
Health Status: Alive|Deceased
Health Condition (Negative/Positive): Arthritis |Asthma |COPD |Diabetes etc etc
Health Condition (Comment): Arthritis |Asthma |COPD |Diabetes etc etc
Overall Comment
以下是其用户界面,因此您可以更好地理解它。
现在我们在创建用于存储这些信息的数据库表时出现问题。以下是需要考虑的事项。
我们制作的桌面设计如下
以下是该表的一些示例输入。
家族史
a) 1,1,1st Brother,Alive, Asthma, Not serious
b) 2,1,1st Brother,Alive, Cancer, Lung Cancer
c) 3,2,2nd Sister,Alive, Asthma,serious
d) 4,2,2nd Sister,Alive, Diabetes,serious
OverallComment
a) 1,1,1,Overall Condition Normal
b) 2,3,2,NULL
然而,由于以下几点,我们觉得这种设计很糟糕。
请告诉我如何更好地设计这个设计?
答案 0 :(得分:1)
我的第一个想法是:为什么要记录这些数据?到底有什么好处呢?我无法想象它的用途。但是,答案将有助于设计。
第二个姐姐或父亲是否患有关节炎是否重要?如果没有,那为什么要区分这两个呢?你可以没有家庭成员类型。 (如果你愿意的话,可以使用一个文字字段来输入'第二个sis',' mom',' father',等等。)
您是否会收到相关报告(例如,20%的申请人告诉我们他们的家人患有癌症)?或者你总是只是查找一个申请人并查看他们的家庭条目?如果是后者,您可以创建一个文本列,只需键入所有成员及其健康状况(或让您的程序写入此内容)。
另一点:为什么OverallComment是一个单独的表?你需要这个国际化吗?或者对于数据库范围的文本搜索?如果没有,请将其作为相关表格中的一列。
applicant ( applicant_id , name , comment )
如果您需要查询和报告的关系模型,那么为家庭成员提供一个表:
family_member ( family_member_id , applicant_id , family_member_type, alive, comment )
每个成员的几个desease条目的另一个表:
family_member_desease ( family_member_id , desease_id , comment )
也许你应该添加日期。例如:据报道父亲什么时候还活着?