2014-12-27 40 views
0

我想知道从数据库中的多重选择中存储值的最佳方式是什么?Rails:从多个选择中存储和检索值

我有一个模型“人”,我需要存储人们的偏好可以是多个值

我应该保存自己的喜好作为一个阵列上的同一个表或创建另一个表具有以下结构?

People_Preferences - PERSON_ID - Preference_id(存储只是一个preference_id)

我需要能够通过人们的喜好进行筛选。

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

回答

1

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

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