数据库从一个表引用多个实体类型

时间:2012-03-17 12:46:20

标签: database-design

所以,我正在创建一个事务数据库表来存储商家和客户之间的交易。

有时客户会使用商店卡付款,有时会使用信用卡付款(此系统中不使用现金)。

如何在数据库中对此进行建模。我目前的想法是,交易表有商店卡交易的字段和信用卡交易的字段。然后,这些字段将引用两个单独的表来存储特定于付款方式的数据。

这意味着其中一个字段始终为null,而另一个字段是对相应付款方式表的引用。

示例: 的 交易已使用信用卡而非商店卡完成。这意味着在事务表中,商店卡字段为空,而信用卡字段包含对信用的引用卡交易表。该信用卡交易表存储与信用卡交易相关的数据,例如验证码交易ID 等。

这让我困惑的原因是因为我在大学里被教导 NULL 值很差。但这不是需要它们的情况。

是否存在此类问题的术语或我应该使用哪种查询来匹配Google?

非常感谢,康纳。

1 个答案:

答案 0 :(得分:1)

请勿使用两个卡号字段

CardNumber应为一列,并包含任何交易中的任何卡号。您应该在系统的某个位置有另一个表,用于跟踪已发布的“存储卡”。从交易表到“商店卡”表的连接将识别哪些交易是使用商店卡进行的,哪些是使用信用卡进行的。