On 5/26/07, Bastien Quelen <[EMAIL PROTECTED]> wrote:
>
>
> Le 26/05/07, Cyril Mougel <[EMAIL PROTECTED]> a écrit :
> > Bonjour,
>
>
> Bonjour,
>
> > Dans une application Rails que je suis en train de créer, j'ai un blocage.
> Je
> > ne sais pas trop si ce blocage est une limitation de mon esprit ou de
> rails.
> > Voici donc mon problème.
> >
> > J'ai 3 tables :
> > - Acteurs
> > - Films
> > - Roles
> >
> > Dans chacune d'elle, il y a un champs nom. Mais voilà, je voudrais lier
> ces 3
> > tables entre elle mais de façon unique. Ainsi en réfléchissant de manière
> > purement SQL, je voulais créer une table comme suit :
> >
> > CREATE TABLE acteur_film_role {
> > id INTEGER,
> > acteur_id INTEGER,
> > film_id INTEGER,
> > role_id INTEGER
> > }
> > Mais avec Rails, impossible de voir comment le schématiser à part en
> créant
> > un nouvel objet model qui schématisera cette nouvelle table composé de
> > belongs_to et has_many Mais cela m'imposera de créer cette objet à
> > chaque fois pour faire une liaison. Car en effet, le
> > has_and_belongs_to_many, ne me permet
> > de faire la liaison avec une base intermédiaire que de deux champs, pas
> > trois.
> >
> > En réfléchissant au problème, je n'ai pas non plus vu d'autre moyen
> conceptuel
> > pour faire cette liaison à part comme je l'ai fait précédemment. Ce
> nouveau
> > moyen pourrait peut-être me résoudre mon problème.
>
>
> En fait dans la logique rails la méthode est plutôt d'avoir dans la table
> roles un acteur_id et film_id.
> Ensuite passer par une relation :througth sur les models acteur et film qui
> permettra de faire des film.roles et des acteur.films sans passé par cette
> table triple relation.
> Pour la syntaxe de :througth tu trouvera facilement de la doc dans les
> archives de la ML et sur le net.
Le problème est que faire ce système implique qu'un rôle n'a qu'un
seul acteur et film. Hors, il se trouve qu'un acteur peux avoir
plusieurs rôle dans un film, qu'un film a plusieurs acteurs par rôle
et qu'un film plusieurs acteurs. Donc, j'ai pas le choix, cette
possibilité ne pourra pas être utilisé à mon avis.
>
> PS: J'ai répondu sur ton blog pour le probéme d'ipv6 ;)
Merci à toi, j'ai répondu
--
Cyril Mougel
--~--~---------~--~----~------------~-------~--~----~
Vous avez reçu ce message, car vous êtes abonné au groupe "Railsfrance" de
Google Groups.
Pour transmettre des messages à ce groupe, envoyez un e-mail à l'adresse
[email protected]
Pour résilier votre abonnement envoyez un e-mail à l'adresse [EMAIL PROTECTED]
-~----------~----~----~----~------~----~------~--~---