关系数据库,多主明细
Relational database, multiple master detail
我正在设计一个用于存储应用程序信息的关系数据库。
每个申请可以包含不同类型的参与者:法人和自然人。
法人和自然人的形态不同,包含的领域也不同。
我想为参与者创建一个共同的 pk 因此我创建了三个 tables:
- participants - 这里我存储共同信息;
- participants_phys_dtls - 这里我存储的是自然人的字段;
- participants_lgl_dtls - 这里我存放的是法人的字段;
这种方法的缺点是结构和获取信息困难
我必须使用左连接加入三个不同的 table 参与者。
另一种解决方案是将这三个 table 统一为一个(参与者)。
此解决方案的缺点是 table 很大且不明确。
请告诉我选择哪种解决方案以及原因,或者针对此问题的其他更好的解决方案。
您应该采用您在问题中提到的第一种方法,该方法分为三个表。这使您远离 update
、delete
、insert
等不同的异常
This 是一本关于规范化的好书。通过此 link,您将了解规范化的工作原理以及我们如何规范化我们的数据库设计。希望对您有所帮助:)
我正在设计一个用于存储应用程序信息的关系数据库。
每个申请可以包含不同类型的参与者:法人和自然人。
法人和自然人的形态不同,包含的领域也不同。
我想为参与者创建一个共同的 pk 因此我创建了三个 tables:
- participants - 这里我存储共同信息;
- participants_phys_dtls - 这里我存储的是自然人的字段;
- participants_lgl_dtls - 这里我存放的是法人的字段;
这种方法的缺点是结构和获取信息困难 我必须使用左连接加入三个不同的 table 参与者。
另一种解决方案是将这三个 table 统一为一个(参与者)。 此解决方案的缺点是 table 很大且不明确。
请告诉我选择哪种解决方案以及原因,或者针对此问题的其他更好的解决方案。
您应该采用您在问题中提到的第一种方法,该方法分为三个表。这使您远离 update
、delete
、insert
等不同的异常
This 是一本关于规范化的好书。通过此 link,您将了解规范化的工作原理以及我们如何规范化我们的数据库设计。希望对您有所帮助:)