J'essaie donc de concevoir une base de données assez volumineuse pour gérer les vidéos et leurs tags. Parce que seul un nombre fini de tags peut être sélectionné pour une vidéo (27), je les stocke dans une table de 28 colonnes de large (une colonne pour chaque tag + video_id).MySQL: Plus de requêtes de requêtes et plus de requêtes
Mon problème se pose lorsque je veux obtenir le nombre de fois qu'un utilisateur a aimé/n'a pas aimé une vidéo avec une certaine étiquette (disons # 24). Chaque Like/Dislike obtient une ligne dans une autre table.
Voici les deux options que j'ai considérées.
1) Ajouter 27 autres colonnes tinyint à la table utilisateur, chacune représentant le nombre de fois où elle a voté sur une vidéo avec tagX.
PRO: facilement sélectionnés
CON: double la quantité de données nécessaire pour chaque utilisateur
2) Utilisation des jointures internes
PRO: Keeps petite taille
CON: plus fort sur le système
deux parce que je suis optimiste et parce que j'essaie d'utiliser les bonnes pratiques, j'essaie d'optimiser mes bases de données pour plus de 300 000 utilisateurs, et ces chiffres seront très utiles. J'ai fait le calcul et même avec 300 000 utilisateurs cela ajouterait seulement environ 27 mégaoctets à ma base de données.
Que faire !?
Merci pour les conseils! Je vais certainement faire ça – DropDeadFred81