Bonjour,

Je me triture les méninges pour un problème qui n'en est peut être pas un mais pour trouver la meilleure facon de faire j'en appelle à votre savoir.
J'ai besoin de faire une structure de données Produits / Caracteristiques pour laquelle en fonction de leur "application" les produits auront des caractèristiques différentes.

La table Produits contient les informations de base d'un produit: (id, nom, prix, image, et donc l'application)
Pour les caractéristiques, je ne sais pas encore si je fais une table par application ou si je ne fais qu'une seule table caractéristique au format (ID / PRODUCT_ID / CARACTERISTIC / VALUE) sachant que je peux avoir une dizaine de caractéristiques différentes ce qui rendrait très vite cette table énormé.

Sur la structure des données ca va a peu près. Par contre pour la modelisation Laravel, je ne sais pas trop comment procéder pour que dans mon application je n'ai pas à tout dupliquer en fonction du nombre d'applications différentes (j'en aurais 2 pour commencer mais je penses étendre rapidement sur 4 - 5 de plus).

Je suis sous Laravel 5.6.

Si vous avez des idées sur la meilleure structure a adopter je suis preneur ;)

Merci pour votre aide

4 réponses


zirby
Réponse acceptée

Pour la liste des caratéristiques en fct des appli, je sais pas non plus.
pour les liens :
caracteristique_commune hasMany Produits
produits belonsTo caracteristique_commune

caracteristique_spec_01 hasOne or hasMany Produits
etc...

Bon voilà ??

Pour ma part, je ferais une table Produits, une table caracteristique_commune, s'il en existe, et une table caracteristique_spec_01 pour les caractéristiques particuliaires et je relie le tout par de ID.

juste une idée ;-)

C'est ce sur quoi je me dirige, ma question porte plus sur la mise en place d'un model simple.
Coté model, je vais devoir faire une table Produit et une table Caracteristiques liée en hasMany et à coté de ca une table "Référence" ou je sais pas quel nom pour définir la liste des caractéristiques en fonction de l'application choisie.

Oui oui c'est bon, je connais bien le fonctionnement ^^
Je penses que cette solution est la plus simple, j'imaginais une sorte d'héritage de classe pour faire ce que je voulais mais ca n'a finalement pas d'interet ;)