Bonjour,

Je suis actuellement en cours de développement d'un site sur base de CakePHP.
J'ai bien avancé grâce à la documentation mais également à l'aide des excellents tutos de GrafikArt.

Voici mon problème: je dispose d'items stockés dans des catégories, chaque item recevant une liste d'informations.
Cette liste est différente selon la catégorie et les champs renseignés peuvent être de tous types.

La question que je me pose donc est:
Comment stocker toutes ses informations sachant que je souhaite les manipuler par la suite (filtres, recherche, tri, ...) ?

Pour l'instant la seule solution que j'ai trouvé est de créer une table par catégorie :
NomcategorieInfos(id, item_id, info1, info2, ...)
et de créer les liens avec les models.

Si j'adopte cette solution, pourrai-je par la suite modifier depuis CakePHP la liste des informations pour chaque catégorie ?

Je suis à l'écoute de toutes vos propositions pour implanter ceci sur de bonnes bases.

Merci d'avance pour vos éclaircissements.

Romaric.

4 réponses


J'ai du mal à comprendre ce que tu veux faire en fait. Tu as un UML pour être plus clair ?

A mon avis, il veut faire des GET avec CakePHP pour pouvoir faire des recherches avancées.

Freak76
Auteur

Je vais tenter d'expliquer avec un exemple.
Mettons nous dans la peau d'un éditeur qui gère ses différentes éditions dans un intranet pour en avoir un suivi.

Lors de l'ajout d'un projet d'édition deux parties sont à remplir.
La première concerne les généralités : numéro de projet, auteur, statut (édité, en cours, annulé, ...), nombre de pages, catégorie (roman, BD, éducatif ...), etc

Selon le choix fait dans la catégorie, la 2nde partie affiche (en AJAX) un formulaire différent.
Par exemple si j’insère un projet d'édition de type BD, je vais pouvoir renseigner le nombre de vignettes, le nombre moyen de vignettes par page, etc
Champs qui n'ont rien à faire dans un roman.

J’aimerai donc savoir comment construire mon modèle pour y ajouter les données de cette 2nde partie.

A cela j'ajoute quelques complications :

  • Les infos relatives à une categorie peuvent servir de filtres (pour des statistiques)

  • Possibilité d'ajouter des categories via UI

  • Si possible : création du formulaire relatif a une categorie via UI

Voici une modélisation de l'état actuel de l'exemple :

PS: pour ce qui est des recherches avancées, j'ai utilisé le Plugin de CakeDC.

Freak76
Auteur

UP avec un autre exemple.

Des utilisateurs appartiennent à des groupes mais les informations (sur l'utilisateur) demandées sont différentes selon le groupe.

Comment construite la base pour stocker ces infos ?

Pour l'instant j'ai créée une table par groupe, chaque table est liée à l'utilisateur par l'id (hasOne) et je remplit que la table correspondante au groupe de l'utilisateur.
Es ce la bonne manière de procéder ?