sql >> Databasteknik >  >> RDS >> Mysql

Bästa metoden för att lagra en lista med användar-ID:n

Det är ineffektivt. Vad du har här i relationella termer är en många-till-många-relation mellan användare och spel. En användare kan rösta på många spel. Ett spel kan röstas på av många användare. Lösningen för detta är att ha en sammanfogningstabell:

USERS (uid, name, ...)
GAMES (gid, name, ...)
VOTES (id, uid, gid, ...)

Där uid och gid är främmande nycklar tillbaka till sina respektive tabeller.

Om någon röstar, infoga en post i VOTES.

För att få en lista med röster för ett spel:

$get = mysql_query("SELECT * FROM votes WHERE gid = $game_id");
...

För att få en lista över användarens röster:

$get = mysql_query("SELECT * FROM votes WHERE uid = $user_id");
...

och så vidare.

Gå inte med i en array och lagra den i en enda kolumn. Du har rätt i att undvika det.



  1. DBCA Skapa databas dålig REMOTE_LISTENER

  2. Hur deklarerar man indata-utgångsparametrar i lagrad procedur/funktion i SQL Server?

  3. Oracle High Availability-koncept i PostgreSQL

  4. SQLite uttrycksbaserat index