我正在建立一个对地方进行评分的 Rails 站点。
每个地方都属于一个类别。每个类别都有许多特征。因此,一个地方可以只属于一个类别,但可以选择它的许多特征。如果一个地方属于第 1 类,那么它只能具有第 1 类的(1 个或多个)特征,而不能具有其他任何特征。也是每个地方的年龄组。
实现此目的的 Rails 方法是什么?
- 我应该为年龄组设置单独的表格还是将它们作为位置表格本身的一部分?
- 如何将要素与地点相关联?我应该有一个单独的表格,如下所示(PlacesFeatures 表格)吗?
我正在使用 SQLite 进行开发,并且将使用 postgres(在 Heroku 上)进行生产。
这是我想到的表结构(表和它的列):
放置表:
INTEGER id
STRING name
INTEGER category_id
STRING address
FLOAT rating
类别表:
INTEGER id
STRING name
特征表:(该表格将显示每个类别的特征,通过查询此表来选择)
INTEGER id
STRING name
INTEGER category_id
年龄组表:(一个地方可以选择多个年龄组)
INTEGER id
INTEGER place_id
BOOLEAN zero_to_three
BOOLEAN four_to_eight
BOOLEAN nine_to_twelve
BOOLEAN thirteen_above
PlacesFeatures 表:
INTEGER id
INTEGER place_id
INTEGER category_id
BOOLEAN feature_1
BOOLEAN feature_2
...
BOOLEAN feature_n
关系:
Place
belongs_to :category
has_many :age_groups
Category
has_many :places
has_many :features
AgeGroup
belongs_to :place
Place 条目将通过表单提交创建。
谢谢你。