我目前正在为体育俱乐部开发一个应用程序,它允许俱乐部管理员管理部门、团队,并最终管理球员。
目前我的数据库/关系如下
class Sport < ActiveRecord::Base
has_many :clubs
has_many :teams
attr_accessible :club_id
class Club < ActiveRecord::Base
belongs_to :sport
has_many :teams
has_many :users
has_many :divisions
attr_accessible :sport_id
class Division < ActiveRecord::Base
has_many :teams
belongs_to :club
attr_accessible :club_id
class Team < ActiveRecord::Base
has_many :users
has_many :schedules
belongs_to :division
belongs_to :club
attr_accessible :division_id, :club_id
class User < ActiveRecord::Base
belongs_to :club
belongs_to :team
attr_accessiable :club_id, :sport_id
我想要的是一种更简洁的管理方式。IE
- 用户只能属于 1 个俱乐部,在 1 个分区内,但可以有多个团队
- 球队只能属于 1 个分区、1 个俱乐部、1 个运动,但有多个用户
- 分区只能属于 1 个俱乐部,在 1 个运动中,但有多个团队
- 俱乐部只能属于一项运动,但有多个团队和多个部门
目前上述工作正常,但我不认为关系/结构处于最佳状态