Il est prudent de dire que le modèle de base de données EAV / CR est mauvais. Cela dit,
Question: Quel modèle, technique ou modèle de base de données doit être utilisé pour traiter les «classes» d'attributs décrivant les produits de commerce électronique qui peuvent être modifiés au moment de l'exécution?
Dans une bonne base de données E-commerce, vous stockerez des classes d'options (comme la résolution TV, vous aurez alors une résolution pour chaque téléviseur, mais le produit suivant peut ne pas être un téléviseur et ne pas avoir de «résolution TV»). Comment les stocker, rechercher efficacement et permettre à vos utilisateurs de configurer des types de produits avec des champs variables décrivant leurs produits? Si le moteur de recherche constate que les clients recherchent généralement des téléviseurs en fonction de la profondeur de la console, vous pouvez ajouter une profondeur de console à vos champs, puis ajouter une seule profondeur pour chaque type de produit de télévision au moment de l'exécution.
Il existe une fonctionnalité commune intéressante parmi les bonnes applications de commerce électronique: elles affichent un ensemble de produits, puis des menus latéraux "d'exploration vers le bas" où vous pouvez voir "Résolution TV" comme en-tête, et les cinq résolutions TV les plus courantes pour le trouvé ensemble. Vous cliquez sur l'un d'entre eux et il n'affiche que les téléviseurs de cette résolution, ce qui vous permet d'approfondir davantage en sélectionnant d'autres catégories dans le menu latéral. Ces options seraient les attributs de produit dynamiques ajoutés au moment de l'exécution.
Discussion supplémentaire:
Bref, y a-t-il des liens sur Internet ou des descriptions de modèles qui pourraient «académiquement» corriger la configuration suivante? Je remercie Noel Kennedy d'avoir suggéré un tableau de catégories, mais le besoin peut être plus grand que cela. Je le décris d'une manière différente ci-dessous, en essayant de mettre en évidence la signification. J'ai peut-être besoin d'une correction de point de vue pour résoudre le problème, ou j'ai peut-être besoin d'aller plus loin dans l'EAV / CR.
J'adore la réponse positive au modèle EAV / CR. Mes collègues développeurs disent tous ce que Jeffrey Kemp a évoqué ci-dessous: "les nouvelles entités doivent être modélisées et conçues par un professionnel" (hors contexte, lire sa réponse ci-dessous). Le problème est:
- les entités ajoutent et suppriment des attributs chaque semaine
(les mots-clés de recherche dictent les attributs futurs) - de nouvelles entités arrivent chaque semaine
(les produits sont assemblés à partir de pièces) - les anciennes entités disparaissent chaque semaine
(archivées, moins populaires, saisonnières)
Le client souhaite ajouter des attributs aux produits pour deux raisons:
- service / recherche par mot-clé / tableau de comparaison entre des produits similaires
- configuration du produit de consommation avant le paiement
Les attributs doivent avoir une signification, pas seulement une recherche par mot-clé. S'ils veulent comparer tous les gâteaux qui ont un "glaçage à la crème fouettée", ils peuvent cliquer sur les gâteaux, cliquer sur le thème de l'anniversaire, cliquer sur le glaçage à la crème fouettée, puis vérifier tous les gâteaux qui sont intéressants sachant qu'ils ont tous un glaçage à la crème fouettée. Ce n'est pas spécifique aux gâteaux, juste un exemple.