MYSQL - Dúvida em escolha na forma de registrar dados

Temos um banco chamado: CPADI
e uma TABELA chamada: USUARIOS

nesta tabela, temos as colunas:

ID
Usuario
Nome

E, temos que cadastrar uma possibilidade de 132 itens referentes a cada usuário. Digamos, cada usuário, além da sua ID, NOME e USUÁRIO, deve conter um registro de 132 códigos de itens, que variam, e que são opcionais.

Pensei em uma forma que não daria certo, pois um campos string aceita apenas 255 CHR ’ s, seria +/- assim:

ID
Usuario
Nome
Itens

na coluna ITENS, adicionariamos os códigos dos itens, seperando-os por uma flag (utilizei o ‘*’), ficando assim:

Itens = 110453100

E depois dava para tratar essa string…

mas, o PROBLEMA é que funcionaria se fossem poucos itens, acontece que pode ser até 132 … logo, não caberia em uma string…

também pensei, em criar as 132 colunas, referentes aos itens como BOOLEANAS… ficando:

ID
Usuário
Nome
item1
item2
item3
itemN

Mas assim, da impressão de estarmos criando uma grande gambiarra …

Fica a questão, qual a melhor forma de fazaer tal método? (Utilizando arquivos? properties… ficaria tremendamente chato e inseguro, não?) (criando um banco para cada usuário? posso considerar isso como gambiarra?)

OBRIGADO!

Você precisa de uma tabela adicional para conter os itens por cliente, e efetuar um JOIN quando precisar obter os itens para cada cliente.

É melhor que criar 132 colunas booleanas (argh), porque quando você tem R$20,00, , quer R$30,00.

Ou seja, esse número de itens vai acabar subindo, subindo, subindo…

Não entendi bem, mas soluções mais ou menos porcas há de monte… :slight_smile:

Pode ter uma String que seja preenchida apenas com 0 e 1, e que determinada posição dela te diga se o usuário tem ou não aquele item. Por exemplo, se o usuário tem o item 69, a posição 69 da String estaria com “1”. Se não tiver, estaria com “0”.

Cara vc vai ter duas tabelas.

Esta de Usuários com os seguintes campos:

-ID
-Usuario
-Nome

A tabela Itens abaixo vai se relacionar com a tabela Usuários através da coluna IDUsuario:

-Item
-IDUsuario

Agora vc pode cadastrar diversos itens na tabela Itens e atribuir a cada um o usuario desejado. Ou seja vc pode ter N itens para cada usuário desde que não se repitam. Caso necessitem se repetir eh soh criar uma coluna adicional na tabela Itens (ID por exemplo) que será a chave primária.

Para retornar em uma consulta, algo como:

SELECT Usuarios.*, Itens.Item
FROM Usuarios INNER JOIN Itens ON Usuarios.ID = Itens.IDUsuario

Espero que tenha ajudado.

Hmm… valeu galerinha, é isso mesmo que vou fazer…

obrigadão, abraços