Rails:存储和检索多个select中的值

时间:2014-12-27 03:34:47

标签: ruby-on-rails model multiple-select

我想知道在数据库中存储多重选择值的最佳方法是什么?

我有一个模特"人们"我需要存储人们的偏好,这可能是多个值

我应该将他们的首选项作为数组存储在同一个表中,还是创建另一个具有以下结构的表?

People_Preferences   - Person_id   - Preference_id(只存储一个preference_id)

我需要能够根据用户的偏好进行过滤。

哪种方法最好还是有更好的方法?

1 个答案:

答案 0 :(得分:1)

听起来你需要的只是一个联接表" people_preferences"和来自Person模型的preferences的habtm关系以及来自Preference to Person的另一个habtm。这将是我的建议毫不犹豫。

但它确实取决于一系列因素。 Postgres支持数组类型,这意味着不需要连接,并且可以使用intarray类型来保存外键,但是当数组值引用其他表中的行时,参考完整性更难实现。如果您正在使用mysql,那么这不是一个真正的选择。