Salut,
> Effectivement, cela devrait fonctionner comme tu le dis, mais je
> trouve moins propre en terme de modélisation, d'avoir une triple
> liaison entre Utilisateur et Application... sachant que dans la table
> Utilisateur, rien ne discrimine un Auteur d'un ResponsableMOE ou MOA.
Et alors ? Dans ton cas dans la table utilisateur il y a quelque chose
qui le distingue ?
Ajouter 3 tables de liaison avec juste les ID de liaisons ça apporte
quelques chose sur le design ?
>
> Cela laisse à supposer, du point de vue modèle, qu'une application
> appartient à plusieurs Utilisateur, voire potentiellement à 3 fois le
> même Utilisateur.
Et quel diff avec ta modélisation ?
Au niveau DB je ne vois pas, si c'est au niveau cake, le nom de
l'association donne le rôle et lève l'ambiguité. Sinon si c'est
uniquement le niveau cake qui te dérange : créer 3 modèle : Auteur,
ResponsableMOA, ResponsableMOE, et leur donner un
usetable='utilisateurs';
> Par ailleurs, comment formulerais-tu dans cette hypothèse, les
> associations dans le Modèle Utilisateur ?
Strictement réciproquement :
class Utilisateur {
var $hasMany = array(
'Auteur' => array('className' => 'Application',
'conditions'=>'',
'order'=>'',
'foreignKey' => 'auteur_id'),
'RespMOA' => array('className' => 'Utilisateur',
'conditions'=>'',
'order'=>'',
'foreignKey' => 'responsableMOA_id'),
'RespMOE' => array('className' => 'Application',
'conditions'=>'',
'order'=>'',
'foreignKey' => 'respMOE'),
);
>
> Je ne prétends pas être un super modeleur SQL, ni un maître des
> associations Cake et je pense que plusieurs solutions sont possibles,
> à partir du moment où elles sont vraiment cohérentes et logiques.
>
L'interêt de ce que je propose est surtout de faciliter BCP
l'utilisation des facilités de cake, de plus la recursivité de niveau
> 0 est très couteuse dans cake, ce que je propose génèrera tout
simplement moins de requêtes. Avec le fait que l'enregistrement est
facilité, ça fait vraiment trop de raison pour ne pas fonctionner
comme ça.
Mehdi
--~--~---------~--~----~------------~-------~--~----~
Groupe "Cakephp-fr".
Adresse : [email protected]
Pour résilier : [EMAIL PROTECTED]
Pour les options : http://groups.google.com/group/cakephp-fr?hl=fr
-~----------~----~----~----~------~----~------~--~---