Mysql 数据库设计建议

Mysql 数据库设计建议,mysql,database,database-design,Mysql,Database,Database Design,我在设计一个数据库,下面是它的外观: 我有一份申请 应用程序将具有appliant 申请人(申请)可能有也可能没有共同申请人 申请人有如下信息:人口统计、一般信息、就业信息、参考资料等 如果共同申请人存在,它将有相同的信息:人口统计,一般信息,就业信息,参考等 我提议的设计如下所示: 等等 申请人表保存申请人的一般信息,类似的共同申请人保存共同申请人的一般信息 这是设计的另一种选择 每个co_申请人信息的表格 你会建议哪一种设计或任何更好的替代方案,以及它的优点和缺点,都会非常有帮助 编辑:阅读

我在设计一个数据库,下面是它的外观:

我有一份申请

应用程序将具有appliant

申请人(申请)可能有也可能没有共同申请人

申请人有如下信息:人口统计、一般信息、就业信息、参考资料等

如果共同申请人存在,它将有相同的信息:人口统计,一般信息,就业信息,参考等

我提议的设计如下所示:

等等

申请人表保存申请人的一般信息,类似的共同申请人保存共同申请人的一般信息

这是设计的另一种选择

每个co_申请人信息的表格

你会建议哪一种设计或任何更好的替代方案,以及它的优点和缺点,都会非常有帮助

编辑:阅读查询可能非常繁重,搜索查询也可能非常激烈


你在“申请人”和“合作申请人”之间复制了很多东西,尤其是重复的表格。疯了


将他们全部视为“申请人”,并且只有一个
申请人
表,但在
申请
表中有两个FK返回到它-
申请人id
共同申请人id

您的申请将提出什么样的查询?例如,搜索查询,读重还是写重?
 Table: application [pk: applicaion_id]

 Table: applicant   [pk: applicant_id, fk: applicaiton_id {references: application.applicaion_id} ]

 Table: co_applicant [pk: ( applicant_id {references: applicant.applicant_id},  co_applicants_applicant_id {references: applicant.applicant_id} ) ]

 Table demographic [pk: demographic_id, fk: appicant_id{references: applicant.applicant_id} ]

 Table employment [pk: demographic_id, fk: appicant_id{references: applicant.applicant_id} ]
 Table: application  [pk: applicaion_id]

 Table: applicant    [pk: applicant_id, fk: applicaiton_id {references: application.applicaion_id} ]

 Table: co_applicant [pk: co_applicant_id, fk: applicaiton_id {references: application.applicaion_id} ]

 Table demographic   [pk: demographic_id, fk: appicant_id{references: applicant.applicant_id} ]

 Table employment    [pk: demographic_id, fk: appicant_id{references: applicant.applicant_id} ]

 Table co_applicant_demographic   [pk: demographic_id, fk: appicant_id{references: applicant.applicant_id} ]

 Table co_applicant_employment    [pk: demographic_id, fk: appicant_id{references: applicant.applicant_id} ]