0

我正在设计一个数据库,这是它的外观的上下文:

我有一个应用程序。

申请将有申请人。

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

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

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

我提出的设计看起来像这样:

 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} ]

ETC...

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

这是设计的替代方案,

 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 信息的表。

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

编辑:读取查询可能非常繁重,搜索查询也可能很密集。

4

1 回答 1

0

你在“applicant”和“co_applicant”之间复制了很多东西,尤其是重复的表。疯狂的。

把他们都当作“申请者”,只有一张applicant桌子,但桌子上有两个 FKapplication回它 -applicant_idco_applicant_id

于 2012-10-21T02:19:13.030 回答