Bonjours à vous.

Mon problème est surement d'ordre conceptuel, mais je ne vois pas où est la solution, alors si jamais vous pouvez me guider je vous en remercie.

Je développe pour ma première fois avec symfony en ayant appris sur plusieurs semaine via la documentation et jobeet. Et niveau concept de table hérité je suis un peu à la ramasse.

Le problème :
  • J'ai 4 entités : user, info, commentaire, partenaire
  • info peut etre : un evenement, une news, un article ou autre (chacun de ces sous-ensemble peut avoir ses propres champs spécifique)
  • Comment conceptualiser au mieux mes commentaires ???


Dans un premier temps j'ai fait hérité evenement, news, article de l'entité info par un héritage du genre column_aggregation.
Les commentaires que j'associais à info fonctionnaient, car ils pointaient vers une table info qui était rempli avec un champ type qui m'indiqué de que sous-ensemble on parlé.

Voici un extrait de mon schema.yml
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 
Info:
  actAs:             { Timestampable: ~ }
  columns:
    titre:           { type: string(255), notnull: true }
    description:     { type: string(4000), notnull: true } 
    created_at:      { type: timestamp, notnull: true }
    updated_at:      { type: timestamp, notnull: true }
 
Evenement: # evenement sur les partenaires
  actAs:             { Timestampable: ~ }
  inheritance:       { type: column_aggregation, extends: Info, keyField: type, keyValue: 2}
  columns:
    partenaire_id:   { type: integer, notnull: true }
    date:            { type: timestamp, notnull: true }
  relations:
    Partenaire:      { onDelete: CASCADE, local: partenaire_id, foreign: id, foreignAlias: EvenementsPartenaire }
Le hic viens surtout du fait que toutes les tables sont physiquement regroupé en la table info du fait du column_aggregation !

Pour mes evenements et articles, pas de problème, ils ont la même contrainte d’intégrité envers la Partenaire. Mais ma news elle n'a pas cette relation avec cette table partenaire, du coup cette contrainte d'intégrité bloque son utilisation.

Idées de résolution :

J'ai pensé changer le type d'héritage de column_aggregation en concrete pour dissocier les tables et ne plus avoir de pb de contrainte d'intégrité. Mais le problème qui se pose alors c'est : A quoi relier mes commentaires ? puisque maintenant dans ce cas la table info est toujours vide !!!

Merci d'avoir lu l'exposé de mon problème et merci d'avance pour votre aide.