bansard wrote:
Bonjour,

Je pose cette question sur la liste cocoon, même si elle concerne essentiellement eXist ou même XML en général. Toutefois, comme beaucoup d'utilisateurs de Cocoon semblent utiliser eXist -et qu'ils ont dû déjà faire face à ce problème, je me lance en premier lieu sur cette liste...
---
J'ai regardé différents liens sur la meilleure manière d'implémenter les relations m,n en XML. Le site de R. Bourret en parle (ex : http://www.rpbourret.com/xmldbms/faqs/manytomany.htm) ou le wikibook sur XML et "Managing Data Exchange" (http://en.wikibooks.org/wiki/XML).

Si je reprends l'exemple classique cité sur la page de R. Bourret, un acteur joue dans m films (dans lesquels jouent n acteurs)...
   actor -[1..*]------------------------------[1..*]- movie

Donc, par exemple, j'ai un formulaire Cocoon "actor", un formulaire "movie". Dois-je créer une collection pour "actor" et une autre pour "movie" ? mais dois-je aussi créer des documents associés "actor-movie" ? et que mettre comme ids ? l'id généré par cocoon ? ou faut-il plutôt écrire des expressions XPaths ou Xlink ? ou bien faut-il faire tout autrement ? (ou vaut-il mieux repartir vers du relationnel ?)

Tout dépend de la navigation qui sera utilisée dans ces données. Si on s'intéresse uniquement aux films dans lesquels a joué un acteur donnée, alors le "actor" peut contenir une liste d'identifiants "movie".

Si on souhaite une navigation bidirectionnelle, alors il devient nécessaire, comme dans un modèle relationnel, d'avoir une structure définissant les relations : table d'association en relationnel, ou linkbase en XLink...

Sylvain

--
Sylvain Wallez                        Anyware Technologies
http://bluxte.net                     http://www.anyware-tech.com
Apache Software Foundation Member     Research & Technology Director


---------------------------------------------------------------------
Liste francophone Apache Cocoon -- http://cocoon.apache.org/fr/
Pour vous desinscrire : mailto:[EMAIL PROTECTED]
Autres commandes : mailto:[EMAIL PROTECTED]

Répondre à