On 3 août, 14:59, Matthieu Humbrecht <[email protected]>
wrote:
> (les tables company_jobs et project_permissions sont des tables de
> jointure)

Juste une remarque, je ne sais pas si c'est vraiment une convention,
mais j'ai toujours nommé les tables de jointures comme ça :
- noms des 2 tables au pluriel
- noms des tables par ordre alphabétique

Ce qui évite de définir le :through.


> Pour franciser tout ceci, en gros, un projet appartient à une entreprise
> et a plusieurs utilisateurs (lesquels appartiennent à différentes
> entreprises).
> Une entreprise peut offrir plusieurs services (Jobs) et un service peut
> être fait dans différentes entreprises.

Question 1 : un projet peut-il être lié à plusieurs utilisateurs ? (On
dirait bien que "oui")

Question 2 : "project_permissions" est-elle une simple table de
jointure ou possède-t-elle d'autres champs ?

S'il s'agit de simples tables de jointure, je te conseille de les
renommer en "companies_jobs" et "projects_users".
De ce fait, ça te simplifie pas mal de choses :

class Project < ActiveRecord::Base
belongs_to :company
has_and_belongs_to_many :users

class User < ActiveRecord::Base
belongs_to :company
has_and_belongs_to_many :projects

class Company < ActiveRecord::Base
has_and_belongs_to_many :jobs
has_many :projects, :dependent => :destroy
has_many :users, :dependent => :destroy

class Job < ActiveRecord::Base
has_and_belongs_to_many :companies

--
Julien Vignolles
--~--~---------~--~----~------------~-------~--~----~
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]
-~----------~----~----~----~------~----~------~--~---

Répondre à