首页 > 解决方案 > 如何设计模式多对多关系

问题描述

我有客户表和保单表和承保范围表。

我的问题是,当我有多重覆盖的政策时,我不知道如何在架构中实施它,所以当我打开政策时,我希望能够为我的政策添加多重覆盖。

架构会是什么样子?

向所有人致以最诚挚的问候

标签: databasedatabase-designrelational-databaseentity-relationshipsystem-analysis

解决方案


从我的角度来看,显示解释更简单。这是 Oracle 语法,但没关系。我只使用了必要的主键和外键列,只是为了说明问题。

客户很简单:

SQL> create table customer
  2    (id_customer number primary key);

Table created.

策略有一个外键约束指向customer

SQL> create table policy
  2    (id_policy   number primary key,
  3     id_customer number references customer
  4    );

Table created.

覆盖范围也很简单:

SQL> create table coverage
  2    (id_coverage number primary key);

Table created.

这是困扰您的问题:如何将具有多个覆盖范围的保单存储在单独的表格中!其列构成外键约束,指向适当的表,而其主键是复合的 & 由两列组成:

SQL> create table policy_x_coverage
  2    (id_policy   number references policy,
  3     id_coverage number references coverage,
  4     --
  5     constraint pk_pxc primary key (id_policy, id_coverage)
  6    );

Table created.

SQL>

推荐阅读