Schéma pour une relation réflexive n-n
Bonjour à tous,
Soit un objet Catégorie, qui peut avoir 0-n catégories enfant, et 0-n catégories parent. J'ai tenté dans un premier temps de déclarer cette relation en utilisant refClass. Ce qui donne, en simplifié :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
|
Category:
columns:
name: { type: string(45) }
relations:
Children:
refClass: CategoryHasCategory
foreign_id: parent_id
Parents:
refClass: CategoryHasCategory
foreign_id: child_id
CategoryHasCategory:
columns:
parent_id: { type: integer, primary: true }
child_id: { type: integer, primary: true }
relations:
ParentCategory:
class: Category
local: parent_id
ChildCategory:
class: Category
local: child_id |
Quand je génère le modèle à partir de là, je m'attends à voir dans la classe BaseCategory des accesseurs get/setChildren() et get/setParents(). Mais ce n'est pas le cas. En revanche j'ai bien un get/setCategoryHasCategory() n-aire.
Je peux sans doute me débrouiller avec ça pour faire mes formulaires d'administration (ou plutôt déclarer une relation n-n fictive sous forme de deux relations 1-n partant de latable d'association CategoryHasCategory.
Mais avant cela, je voudrais être sûr de ne rien rater. N'y a t'il pas moyen de déclarer ce genre de relations réflexives comme les autres relations n-n ?