Bonjour, je suis entrain de créer une application e-commerce et je suis bloquer sur la structure et sur l'approche d'implémentation du système permettant au moment de la création du produit de specifié un ensemble des champs dynamique et administrable tel que la marque, le type, le modèle.

Je voudrais que ces champs soit dynamique c'est à dire à la catégorie Laptops et Ordinateurs est associé les champs Marque, Modèles, Ram, Couleur, etc... et que par exemple quand l'utilisateur sélectionne la marque Appel que dans le champ Modèles se prérempli des modèles liés à la marque Apple et par la suite si il sélectionner le modèle Imac que dans le champ Ram soit pré-rempli des taille de Ram disponible pour les Imacs et ainsi de suite.

La difficulté est que je veux que toute cette hierarchie soit dynamique et administrable.

Si quelqu'un à une idée d'approche d'implémentation ça va grave m'aider, merci 😊

2 réponses


Une solution du type pourrait faire l'affaire :

int id
int parent_id // Si null, c'est qu'on est tout au dessus et qu'il n'y a pas de parent. Sinon, ça va contenir l'id de la "catégorie" parente, si tu as un modèle, tu aurais ici l'id de la marque associée
string type // Nom de ta "catégorie" de méta data (Marque, Model, Ram, ....)
string value // Valeur associée à ton type de champ (si marque, pourrait être Apple)

Ensuite, pour remplir tes champs, tu ne devrait pas avoir trop de difficulté :

SELECT * FROM [nomTableMeta] WHERE parent_id IS NULL AND type = 'Catégorie';

Quand tu es dans ta catégorie :

SELECT * FROM [nomTableMeta] WHERE parent_id = :idCategorie AND type = 'Marque';

Une fois la marque sélectionnée :

SELECT * FROM [nomTableMeta] WHERE parent_id = :idMarque AND type = 'Modèle';

Et ainsi de suite.

Attention, cette solution va très vite faire gonfler ta table.
N'hésite pas à faire une table avec tous les types pour éviter de recopier 150 fois le type en chaine de caractère

lepresk
Auteur

Ok, je vais m'y mettre merci de l'idée