Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Melhor método para armazenar uma lista de IDs de usuário


É ineficiente. O que você tem aqui em termos relacionais é um relacionamento muitos-para-muitos entre usuários e jogos. Um usuário pode votar em muitos jogos. Um jogo pode ser votado por muitos usuários. A solução para isso é ter uma tabela de junção:
USERS (uid, name, ...)
GAMES (gid, name, ...)
VOTES (id, uid, gid, ...)

Onde uid e gid são chaves estrangeiras de volta para suas respectivas tabelas.

Se alguém votar, insira um registro em VOTOS.

Para obter uma lista de votos para um jogo:
$get = mysql_query("SELECT * FROM votes WHERE gid = $game_id");
...

Para obter uma lista dos votos do usuário:
$get = mysql_query("SELECT * FROM votes WHERE uid = $user_id");
...

e assim por diante.

Não junte um array e armazene-o em uma única coluna. Você está certo em evitar isso.