Gostaria de re-fazer uma pergunta de uma maneira mais direta e geral:
Como você cria uma tabela para armazenar valores que podem ser vários tipos diferentes?
No meu caso, os valores fornecem diagnósticos sobre um evento. Ex: Evento ocorreu -> Armazene leituras de vários CPs que contêm informações pertinentes sobre o evento. Os CLPs podem monitorar qualquer tipo de dados.
Alguns exemplos em que posso pensar:
- Crie uma coluna para todos os tipos possíveis e crie outra coluna para indicar qual coluna usar
- Ex: Cols: IntVal, StrVal, BoolVal, Tipo. Vals: null, null, True, "BOOL"
- Armazene os valores, não importa o que seja um varchar
fonte
NOT NULL
? Pessoalmente, acredito muito em ter umaNOT NULL
restrição sempre que possível .Acho que se fosse absolutamente necessário armazenar um valor dessa maneira em um banco de dados relacional, eu usaria uma solução como as colunas JSON do Microsoft SQL Server .
fonte