gpt4 book ai didi

mysql - 设计正确的表结构

转载 作者:行者123 更新时间:2023-11-29 12:27:57 24 4
gpt4 key购买 nike

我们正在努力保存特定外国求职者的家族史。以下是我们必须保存的详细信息。

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

下面是它的UI,以便您更好地理解它。

enter image description here

现在我们的问题是创建一个数据库表来存储这些信息。以下是需要考虑的事项。

  1. 如果求职者愿意,他可以提供任意数量的家庭成员的数据。
  2. “一般数据”下有数百项。因此,我们无法在表中为其中的每个项目创建列。
  3. “整体历史评论”是对整个家族历史的评论,与特定成员无关。

我们制作的表格设计如下 enter image description here

以下是表中的一些示例输入。

家族史

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

总体评论

a) 1,1,1,Overall Condition Normal
b) 2,3,2,NULL

但是,由于以下几点,我们认为这种设计很糟糕。

  1. 查看家族史输入的 a) 和 b)。求职者的第一个兄弟有 2 种健康状况。要输入此信息,需要插入 2 行,并重复有关他的所有详细信息(除了不同的健康状况)。

您能告诉我如何使这个设计更好吗?

最佳答案

我的第一个想法是:为什么要记录这些数据?到底有什么好处呢?我无法想象它的用途。然而,答案将有助于设计。

二姐或父亲有关节炎重要吗?如果不是,那为什么要区分两者呢?您可以没有家庭成员类型。 (如果您愿意,请使用文本字段,在其中输入“第二姐姐”、“妈妈”、“父亲”等。)

您会收到相关报告吗(例如,20% 的申请人告诉我们他们的家庭成员患有癌症)?或者您总是简单地查找一位申请人并查看他们的家庭条目?如果是后者,您可以创建一个文本列,您只需在其中输入所有成员及其健康状况(或让您的程序编写此内容)。

还有一点:为什么OverallComment是一个单独的表?您需要这个来实现国际化吗?或者用于数据库范围的文本搜索?如果没有,请将其作为相关表中的一列。

applicant ( applicant_id , name , comment )

如果您需要查询和报告的关系模型,则为家庭成员准备一张表:

family_member ( family_member_id , applicant_id , family_member_type, alive, comment )

另一个表格列出了每个成员的几种疾病条目:

family_member_desease ( family_member_id , desease_id , comment )

也许您应该添加日期。例如:据报道父亲还活着是什么时候?

关于mysql - 设计正确的表结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28020667/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com