é chamada de uma lista separada por vírgulas de pares de valores de atributo e é uma coisa perfeitamente válida para fazer ...
... em circunstâncias raras e excepcionais !
Alguém pode me dizer o que a técnica é chamada quando você armazena campos e valores divididos em um banco de dados delimitado por uma vírgula, por exemplo. Eu vi isso sendo usado, mas não tinha certeza do que era chamado.
id | options
1 | option1=this, option2=that, option3=other
2 | option1=this, option2=that, option3=other
3 | option1=this, option2=that
Estou com o Paul; "Stupid" é a primeira palavra que vem à minha mente.
BTW, a razão pela qual isso é "estúpido" ou "estúpido" ou "uma péssima idéia" é que isso é feito melhor como uma tabela separada com um campo de chave estrangeira apontando para o campo de ID na primeira tabela, um campo "chave" e um campo "valor". isso permite que pares de chave / valor sejam individualmente indexados, pesquisados e manipulados (adicionar, excluir, atualizar).
e, mesmo assim, isso só é útil em algumas circunstâncias - onde há um número variável de chaves desconhecidas / arbitrárias que um dado registro pode ter associado a si mesmo. se o nome e o número de chaves forem conhecidos antecipadamente, há maneiras melhores de lidar com isso.
A wikipedia tem vários artigos introdutórios sobre bases de dados e normalização de bases de dados que valem a pena ler. comece com Modelos de banco de dados e Banco de dados Normalização
De acordo com alguns livros na minha prateleira, o termo que você está procurando é:
Embora haja exceções para todas as regras, os campos com várias partes são raramente necessários.
Campos multipartes podem causar estragos na integridade dos dados e devem ser evitados. Os problemas geralmente surgem quando você tenta editar, excluir ou classificar a data em um campo multiparte.
Quando você "normaliza" seu banco de dados e garante que cada campo armazene apenas um único valor que você está fazendo (e outros) um grande favor, ajudando a garantir que você tenha integridade de dados e informações precisas.
Eu o chamo de violação do primeiro formulário normal.
Concordo, é estúpido
SE
este é o modelo de dados do seu aplicativo.
Isso é realmente muito benéfico se você simplesmente persistir em algo que foi analisado em outro lugar, como opções do usuário em um aplicativo cliente. Faz o cliente para o trabalho de análise. Este é um mecanismo de armazenamento trivial que pode ser facilmente dividido e armazenado em uma coleção do lado do cliente.
Livremente, é um "valor repetido" e viola (pelo menos) a primeira forma normal (tipo de): link
Os valores separados por vírgula estão próximos.
Não sei por que você repetiria nomes de campo para todos os valores.
Você pode usar tipos de matriz no PostgreSQL para obter algo semelhante ao que procura, mas ainda é uma Idéia Realmente Ruim (tm).
É assim que eu prefiro fazê-lo se você estiver fazendo algo com esses dados além de simplesmente persistir.
id | opt | content
1 | 1 | this
1 | 2 | that
1 | 3 | other
2 | 1 | this
2 | 2 | that
2 | 3 | other
3 | 1 | this
3 | 2 | that
3 | 3 | other
Tags database