我正在开发一个项目,我们一直在创建将引用存储为两列组合的表。
示例:我们有一个“警报”表,用于向用户提供信息。警报可以引用许多不同的内容,您可以收到有关新消息的警报,或者其他用户是否提及过您。这些警报具有不同的类型,并引用不同类型的数据。消息警报应该将用户引导到消息页面,提醒警报应该将用户引导到其他用户页面。
我们使用列alert.type和alert.article并存储type = MESSAGE或type = MENTION和article作为 消息或用户表的外键。这让我感觉很糟糕,将两个不同表格的引用压缩到同一列。但是,由于我们的表是InnoDB,因此我很难证明这一点。希望我能得到一些专家意见,为什么这是一个好/坏的选择。我认为这种方法可能会引入索引连接的问题,但我真的对此不太了解。
我猜其他选项是每个类型的一个列,这使得表格相当宽,并且充满了空白,我并不介意,但有些人觉得乏味;或者每种类型的'子'表似乎最正确,但有点矫枉过正?
干杯,
答案 0 :(得分:0)
以下是一些原因:
“满满的空”?可爱。此外,它只会是1/2的空值(一列总是有一个值)。