Há como eu criar um campo do tipo Array no MySQL? O que eu preciso é criar um campo que possa armazenar vários valores a serem acessados separadamente.
Seria mais ou menos como se eu fizesse o seguinte:
int[] n = new int { 1, 2, 3 };
bd.executeUpdate("insert into tbl (numbers) values (" + n + ")");
Claro que, no caso acima, o array n não deveria ser manipulado por um toString.
Um exemplo disso que quero fazer é a propriedade que o PostgreSQL tem de criar um campo com o tipo assim: VARCHAR(100)[]
Onde o [] especifica que o campo poderá conter diversos valores, e que estes poderão ser acessados por índices.
Não é melhor transformar tudo em string… e gravar como varchar mesmo?
Depois na retomada dos dados, manda pra array novamente. :?[/quote]
Esqueci de citar.
Cara, eu já pensei nisso, e realmente é a primeira solução a se pensar. Mas é que isso seria uma tremenda gambiarra neh. Tipow, ficar fazendo split e toString o tempo todo é algo meio “impraticável”.
Entretanto, temo pelo fato de que será minha única solução
nbluis e mirts: não posso usar ENUM por que eu teria que definir valores específicos, e isso não resolveria meu problema.
fsquadro, andei pensando nisso e acabará sendo a solução. Quanto à normalização, sim, elas estão normalizadas. O que ocorre é que essas tabelas eram antes implementadas em um sistema com persistência baseada em arquivos binários proprietários e que funcionavam de uma forma diferente, tanto nas chaves, índices, etc, quanto nas foreign key’s. Esse sistema tinha a capacidade de criar campos com vários valores. Usado da seguinte forma: o campo chamava-se vencimento, e era composto de 12 valores. Cada “parte” desse campo de 12 “partes” era preenchido com uma data diferente. É isso que preciso implementar.