mysql - 两个表通过引用表引用单个表

标签 mysql database entity-framework normalization

我创建了一个数据库,用于对申请公共(public)住房的人进行分类,其中一个类别是申请人或申请人的家庭成员是否有残疾,但我一直在努力使表格正常化:我已经研究过网站上有不同的答案,这是我提供的最佳选择:

                  family
                    M|1
        applicant-1--|--1-family member
            1 |          1 |
            1 |          1 |
                disabled
                  1 |
                  M | 
         disabled by disability
                  1 |
                  M |
              disability
                  1 |
                  1 |
            type of disability

申请人

  • 申请人 ID(PK)
  • id 已禁用(fk)

家庭成员

  • id 家庭(PK)
  • id 已禁用(fk)

已禁用

  • ID 已停用 (PK)

因残疾而致残

  • 因残疾而致残 (PK) 的 ID
  • id 已禁用(fk)
  • 身份证残疾(外籍)

残疾

  • 身份障碍(PK)
  • 身份证姓名残疾(外籍)
  • id 类型禁用(fk)

残疾类型

  • 身份类型残疾(PK)
  • 姓名类型残疾

其预期用途是申请人或家庭成员可以列出尽可能多的残疾。这是简化查询的最佳方法吗?它是否正确标准化?

最佳答案

这样怎么样:每个APPLICANT可以有许多FAMILYMEMBER并且它本身也是一个FAMILYMEMBER。一个家庭的一名成员,可以申请HOUSEAPPLICATION,这就是为什么MemberId在HOUSEAPPLICATION中是PK的原因。

您只需要残疾人和家庭成员之间的关系。在 DISABLEDPEOPLE 表中,您将拥有复合键(DisabilityId、MemberId)。

家庭成员

成员 ID、ConnectedApplicantId、关系、姓名

房屋申请

成员(member) ID[PK&FK]、申请人姓名、日期

残疾人

残疾 ID、成员(member) ID、批准日期

残疾

残疾 ID、残疾名称、残疾类型 ID

残疾类型

残疾类型 ID、残疾类型名称

关于mysql - 两个表通过引用表引用单个表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29591730/

相关文章:

mysql - 如何逆转远程mySQL访问?

mysql - 服务器之间传输mysql数据库

wcf - 通过 WCF 交付 EF 模型的最佳方式是什么?

sql-server - Entity Framework 临时保​​存

mysql - 使用 Sequel Pro 本地备份 MySQL 数据库

MySQL:从坐标字符串创建多边形几何图形

Mysql_install_db 找不到文件

c# - 在表中,列数据类型为 varchar,使用 linq to sql 仅检索列中数字/数字的值

java - 使用 JSON 和 PHP 从 Mysql DB 获取数据时出错

java - 无法用Java从数据库中读取表中的行