Existe um nome para o seguinte design/padrão de esquema de banco de dados? Meu objetivo final é encontrar mais literatura sobre o assunto. A pesquisa superficial de hoje estava muito cheia de palavras genéricas para definir o termo (se houver) para esse tipo de coisa:
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]
Onde fruit_type seria uma coluna varchar preenchida com valores como "Apple, Banana, Orange, Cherry". É uma espécie de "integridade referencial do pobre homem". Obviamente, uma das falhas desse tipo de projeto é poder inserir valores que não resultam em uma junção útil (ou seja: não há cerejas para falar aqui).
Aqui está outro exemplo de tal padrão: Uma única tabela "log (id, table_name, record_id, timestamp)" que atua como uma espécie de rastreador de tempos de modificação em várias outras tabelas. Estritamente falando, não tem integridade de referência, mas a parte (table_name, record_id) deve se referir a algum registro em outra tabela, exigindo uma junção para realmente obter os dados completos.
Vou assumir que o esquema é uma caricatura suficiente de algum tipo de coleção de grupos de itens para as pessoas aqui.
A questão é: como se chama esse tipo de "integridade referencial do pobre homem"?
Não estou tentando aprender sobre integridade referencial. Quero identificar o nome desse design ruim e examinar mais detalhadamente os aspectos "vamos projetar um esquema de banco de dados" (ex: prós, contras, opiniões, ensinamentos, etc.) que têm a ver com esse desastre de esquema comumente visto.