首页 > 解决方案 > 数据库设计中的一对多关系,将根据类型指向不同的表

问题描述

请观察下图,这种方法是否正确或有办法实现我的范围?

在此处输入图像描述

付款结算可能有多种方式

  1. 用现金

  2. 通过支票

  3. 也许客户退货了,而发票可能已经用信用票据结算(退货TYPE3表)

有时,每张发票可能包含所有三种类型的结算,如果是这种情况,我该如何规范化。

我很困惑,请指教。

标签: databasedatabase-designrelationshiprdbms

解决方案


我想你想要这样的例子:

CREATE TABLE Settlements (ID INT PRIMARY KEY, ...);
CREATE TABLE Returns (ID INT PRIMARY KEY REFERENCES Settlements (ID), ...);
CREATE TABLE Cash (ID INT PRIMARY KEY REFERENCES Settlements (ID), ...);
CREATE TABLE Checks (ID INT PRIMARY KEY REFERENCES Settlements (ID), ...);

推荐阅读