J'ai une table de produits avec 100000 produits et j'ai aussi une table utilisateur avec 5000 enregistrements. et supposons qu'un utilisateur peut nous donner des commentaires sur n'importe quelle combinaison de ces produits. Alors supposons qu'il choisit de comparer les produits 1,3,100,200,400,500 et ainsi de suite. (Il peut nous envoyer un autre commentaire sur d'autres produits)Stocker un tableau dans une chaîne (question des experts en base de données)
Alors voici ma question, je veux juste savoir ce qu'un concepteur de base de données expert penserait de cette situation où le nombre de produits et d'utilisateurs est grand. Une façon de stocker ces évaluations est dans une seule chaîne comme: 1 # 5 3 # 4 100 # 5 .... x # y signifie qu'il a donné y étoiles à produit avec id de x. Je peux charger cette vote_string dans mon script php par exemple et en extraire les détails.
Donc, la table de notation aurait probablement cette structure: id, user_id, vote_string
Une autre façon est de stocker ce retour dans cette structure:
vote Tableau: id, user_id, la date
vote_details Tableau: vote_id, product_id, vote ==> (vote_id, products_id) comme clé primaire et vote_id est une clé étrangère.
(ou peuvent ces 2 tables peuvent être compressés dans un seul tableau comme id, user_id, product_id, vote [id, user_id, product_id] comme clé primaire)
donc je suppose qu'il est très facile d'interroger dans le deuxième conception, mais il consomme plus d'espace et de temps pour chaque requête, même en cas de suppression du produit, il est préférable d'utiliser le second design. Qu'est-ce que tu ferais?
Toute idée est appriciée.
Bon point sur la concaténation. et oui il peut. Il peut presque envoyer de nombreux commentaires sur un produit comparé à d'autres séparément. – EBAG
+1 Je suis entièrement d'accord. – Halvard