Je suppose client == société. Voici un exemple pour ActiveRecord
class Stage < ActiveRecord::Base
belongs_to :staff
belongs_to :project
belongs_to :job
belongs_to :company, :class => "Client"
end
class Project < ActiveRecord::Base
belongs_to :company, :class => "Client"
has_many :stages
end
class Job < ActiveRecord::Base
belongs_to :project
belongs_to :company, :class => "Client"
has_many :stages
end
class Client < ActiveRecord::Base
has_many :jobs, :foreign_key => "company_id"
has_many :projects, :foreign_key => "company_id"
has_many :stages, :foreign_key => "company_id"
end
class Staff < ActiveRecord::Base
has_many :stages
end
Voici un exemple pour DataMapper:
class Stage
include DataMapper::Resource
property :id, Serial
belongs_to :staff
belongs_to :project
belongs_to :job
belongs_to :company, "Client"
end
class Project
include DataMapper::Resource
property :id, Serial
belongs_to :company, "Client"
has n, :stages
end
class Job
include DataMapper::Resource
property :id, Serial
belongs_to :project
belongs_to :company, "Client"
has n, :stages
end
class Client
include DataMapper::Resource
property :id, Serial
has n, :jobs, :foreign_key => "company_id"
has n, :projects, :foreign_key => "company_id"
has n, :stages, :foreign_key => "company_id"
end
class Staff
include DataMapper::Resource
property :id, Serial
has n, :stages
end
Pour l'importation, vous devez le faire dans un ordre spécial:
Client
, Staff
, car ils peuvent exister indépendamment de tous les autres modèles
Project
, cela dépend uniquement de Client
Job
, dépend de Project
et Client
Stage
, dépend de Staff
, Project
, Job
et Client
Utilisez-vous ActiveRecord ou DataMapper? (ce sont deux choses différentes) – mikej
Désolé, j'utilise DataMapper, mais supposé que les types de relations sont similaires? par exemple. un à plusieurs etc – Tom