Tenho um colega que vive colocando conteúdo misto em uma coluna. Por exemplo, este caso atual com o qual estou lutando é uma coluna chamada "opts", que é uma matriz de inteiros. Dependendo de um tipo que nem está presente na linha atual, você terá que juntar outra tabela para descobrir isso, esta coluna pode conter:
- um 0 ou um 1 - significando um estado ligado/desligado
- uma lista de IDs de uma tabela
- uma lista de IDs de uma segunda tabela
- null em qualquer outro caso
Para mim, isso parece mais desordem do que dados organizados. Então, existe um conceito de design de banco de dados que isso viola ou é apenas meu TOC? Quais devem ser meus argumentos quando tento persuadi-lo a não fazer mais isso?
Gostaria de acrescentar que os IDs da tabela não precisam de chaves estrangeiras por motivos que não vale a pena entrar, o colega faz isso com outras coisas também, por exemplo outra coluna em outra tabela tem uma string ou um texto json . O que eu faria nesses casos é ter mais colunas, uma para cada caso, e preencher apenas uma delas e deixar as demais como nulas.