假设我有一个用户。用户可以拥有几种喜欢的颜色。然后我让用户搜索具有某些喜欢的颜色的其他用户。我应该如何构建这个表?每个颜色有一个包含20列的表似乎是一个坏主意,但尝试在单个列上进行字符串匹配似乎也非常混乱。
Users
id name
1 Don
FavoriteColors
id user_id red green blue orange violet...
1 1 0 0 1 1 1
缩短的模型:
User
has_many :colors
FavoriteColor
belongs_to :user
答案 0 :(得分:0)
在这里看一下2.6 has_and_belongs_to_many协会
The has_and_belongs_to_many Association 对于许多对很多关系来说,这将是最好的方法,因为它是标准化的。