我正在设计一个数据库,这里是它的外观背景:
我有一个申请。
应用程序将具有应用程序。
申请人(申请)可能有也可能没有共同申请人。
申请人有以下信息:人口统计,一般信息,就业信息,参考资料等......
如果共同申请人存在,它将拥有相同的信息:人口统计,一般信息,就业信息,参考等...
我提出的设计看起来像这样:
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} ]
每个co_applicant信息的表格。
您会建议哪种设计或任何更好的替代方案,以及它的优点和劣势都会非常有用。
编辑:读取查询可能非常繁重,搜索查询也很激烈。
答案 0 :(得分:0)
你在“申请人”和“co_applicant”之间复制了很多东西,特别是重复的表格。疯狂。
将他们全部视为“申请人”并且只有一个applicant
表格,但在application
表格中有两个FK返回给它 - applicant_id
和co_applicant_id