【问题标题】:Reference different tables depending on a condition根据条件引用不同的表
【发布时间】:2020-11-20 16:58:51
【问题描述】:

我有一个表[Advertiser] 和一个表[Ad] 有一个N..M 关系,Advertiser 可以有多个Ads,这样[Ad] 将有一个引用[Advertiser] 的列。

Advertiser 可以是公司个人,输入到表格中的数据会有所不同。所以我的想法是我应该将[Advertiser] 表拆分为两个表,例如[CompanyAdvertiser][PersonAdvertiser]

那么是否有可能在[Ad] 中有一个列引用[CompanyAdvertiser][PersonAdvertiser],这取决于谁应该是Advertiser

【问题讨论】:

  • 假设它们有相同的类型,你可以有这样一个列。但是您不能使用该列与两个不同的表建立外键关系。
  • 您是否可以为特定 RDMS 提供解决方案?标记它,如果有的话。
  • 只需在广告客户表中为广告客户类型、公司或个人提供一列。

标签: sql database-design referential-integrity


【解决方案1】:

我建议有一个表 Advertiser,其“类型”列可以是“人”或“公司”。然后在 Ad 表中添加对该表的引用

【讨论】:

    猜你喜欢
    • 2014-11-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-01
    • 1970-01-01
    • 2023-01-10
    • 1970-01-01
    相关资源
    最近更新 更多