Je suis dans le dilemme, je ne sais pas lequel est le meilleur. (J'utilise php et mysql btw)Est-ce que je devrais stocker en tant que "chaînes" ou "entiers" en php et mysql?
Disons que je suis en train de développer un site communautaire communautaire. Un utilisateur peut ajouter autant d'amis qu'il le souhaite. Dans ma base de données, j'ai une table d'utilisateurs dont les détails de l'utilisateur du magasin incluent les amis de l'utilisateur. Dois-je stocker les amis de l'utilisateur dans:
Chaînes => john; bryan; sam; paul; ...;
ou
Entiers => 1; 21; 50; 1779; 30; ...; Chaîne signifie stocker leur nom d'utilisateur.
Entier signifie stocker leur identifiant d'utilisateur.
Lequel est le meilleur?
Si la chaîne, ce serait une très, très grande chaîne (imaginez les utilisateurs ont 400 amis, et certains noms d'utilisateur sont extrêmes à long)
Si id, comment la liste d'amis sur la page de profil d'utilisateur? Obtenir la liste des identifiants dans une longue chaîne (séparés par un point-virgule), utilisez la fonction explode pour la transformer en tableau. Puis en utilisant des boucles pour afficher ?? N'est-ce pas gênant? Est-ce qu'il y a un autre moyen? Si oui, s'il vous plaît montrer un exemple de code ..
OU normalement, comment auriez-vous les gars pour stocker la liste "amis" dans la table des utilisateurs?
Pourquoi ?? Serait-il plus rapide (plus rapide dans la récupération des données) si j'utilise la requête INNER JOIN? – roa3
Pourquoi quel bit? Ne pas stocker les choses sous la forme d'une liste délimitée par des points-virgules?Cela prend une collection de données (les bases de données sont * bonnes * pour stocker des collections de données dans des tables - c'est ce qu'elles sont) et les transformer en une chaîne sans raison. Après les avoir transformés en chaîne, vous ne pouvez pas travailler dessus. –