制作通用链接表是一个坏主意吗?

ope*_*rog 1 database database-design

想象一下具有高度规范化的元数据库.如果我试图在这里描述它,它会炸毁这个输入字段.但是,想象一下,通过所有表,整个数据库中的每个关系都通过一个名为link的表.它有以下字段:master_class_id,master_attr_id,master_obj_id,class_id2,obj_id2.这个表可以很容易地表示各种关系:1:1,1:n,m:n,self:self.

我看到这个表将要获得HUUUUGE的问题.这是不好的做法吗?

Vin*_*vic 7

这两个帐户都错了:

  1. 它将成为您所有查询的巨大瓶颈,它将消除任何吞吐量的机会.

  2. 它充满了糟糕的设计:你应该能够更简洁,更接近现实来描述事物.如果这确实是存储数据的最佳方式,您可以考虑分区甚至是另一种范例而不是关系


Ste*_*aux 5

总之,是的,这是一个坏主意

没有太多细节,我会提供以下内容:

  • 对于元数据库,链接表应该由(高级)实体拆分:也就是说,每个实体应该有一个单独的链接表
  • 实体间链接需要另一个链接表

通常,高级实体很容易识别,如客户.