以下数据库模式设计/模式是否有名称?我的最终目标是找到更多关于该主题的文献。今天粗略的网络搜索充满了通用词,无法确定此类事物的术语(如果存在的话):
Fruit (id, farm)
Apple (fruit_id, color)
[fruit_id => Fruit.id]
Banana (fruit_id, length)
[fruit_id => Fruit.id]
Orange (fruit_id, is_seedless)
[fruit_id => Fruit.id]
FruitPack (id, destination)
FruitPackFruits (fruitpack_id, fruit_id, fruit_type)
[fruit_id => Fruit.id, fruit_type => VARCHAR]
其中fruit_type将是一个 varchar 列,其中填充了诸如“Apple、Banana、Orange、Cherry”之类的值。这是某种“穷人的参照完整性”。显然,这种设计的失败之一是能够插入无法解析为有用连接的值(即:这里没有樱桃可言)。
下面是这种模式的另一个例子:一个单独的“log (id, table_name, record_id, timestamp)”表,它充当了各种其他表中修改时间的一种跟踪器。严格来说,它没有引用完整性,但是 (table_name, record_id) 部分应该引用另一个表中的某些记录,需要连接才能实际获取完整数据。
我将理所当然地认为该模式是对这里的人们的某种项目组集合的充分讽刺。
问题是:这种“穷人的参照完整性”叫什么?
我不是要了解参照完整性。我想确定这个糟糕的设计的名称,并进一步研究与这种常见的模式灾难有关的“让我们设计一个数据库模式”方面(例如:优点、缺点、意见、教导等)。