Se connecter avec
S'enregistrer | Connectez-vous

[mySQL]Question de débutant

Dernière réponse : dans Programmation

Bonjour à tous,
Je vais essayer de vous expliquer mon questionnement:
J'ai deux table, par exemple une table d'utilisateurs et une table d'objets .
Chaque utilisateur a une liste d'objets qui lui est propre.
Comment faire pour programmer ca dans la base de données?

Pour le moment, je m'en sort en mettant dans la table utilisateurs un champ qui correspond a la liste des objets. La liste étant un champ texte, qui contient les id des objets séparées par une virgule.
J'extraie l'info a partir d'un explode du champ.

N'y a-t-il rien de plus performant?Car pour le moment, si je veux récupérer des infos sur les objets d'un utilisateur, je dois faire ca en deux temps.

Merci de votre aide :) 

Autres pages sur : mysql question debutant

Lassé par la pub ? Créez un compte

Salut,

pour résoudre ton probleme, il te faut une 3ème table qui fasse le lien entre tes utilisateurs et les objets.

Tu auras donc les tables
UTILISATEURS{utilisateurID,utilisateurNom,...}
OBJETS{objetID,objetIntitule,...}

et la table
LIEN_UTILISATEUR_OBJET{lienID, utilisateurID, objetID}

ainsi tu peux récupérer toutes les infos que tu veux en 1 seule requete.

Ah ben oui tiens, j'avais pas pensé :) 
Par contre, ca se passe comment au niveau de la requete?
Je suppose qu'il doit y avoir du JOINT ou je ne sais trop quoi.
Ce serait possible d'avoir une breve explication (ou un bon lien pour apprendre)? Parce que jusqu'à présent, je me suis limité aux "SELECT truc,machin FROM bidule WHERE bazard", alors les LEFT INNER JOINT et tout le tintouin :pt1cable:  ...

Merci encore pour cette réponse rapide et efficace en tous cas :) 

  1. select * from utilisateurs, objets, liens_utilisateur_objet where utilisateurs.utilisateurid = liens_utilisateur_objet.utilisateurid and objets.objetid = liens_utilisateur_objet.objetid

après un coup d'oeil à la doc, tu peux aussi faire:

  1. select * from utilisateurs join liens_utilisateur_objet on (utilisateurid) join objets on (objetid)

Lassé par la pub ? Créez un compte
Tom's guide dans le monde