关系数据库,多主明细

Relational database, multiple master detail

我正在设计一个用于存储应用程序信息的关系数据库。

每个申请可以包含不同类型的参与者:法人和自然人。

法人和自然人的形态不同,包含的领域也不同。

我想为参与者创建一个共同的 pk 因此我创建了三个 tables:

这种方法的缺点是结构和获取信息困难 我必须使用左连接加入三个不同的 table 参与者。

另一种解决方案是将这三个 table 统一为一个(参与者)。 此解决方案的缺点是 table 很大且不明确。

请告诉我选择哪种解决方案以及原因,或者针对此问题的其他更好的解决方案。

您应该采用您在问题中提到的第一种方法,该方法分为三个表。这使您远离 updatedeleteinsert 等不同的异常

This 是一本关于规范化的好书。通过此 link,您将了解规范化的工作原理以及我们如何规范化我们的数据库设计。希望对您有所帮助:)