Ruby on rails 如何使用ActiveRecord对此进行建模?
我有一个表Ruby on rails 如何使用ActiveRecord对此进行建模?,ruby-on-rails,ruby,activerecord,Ruby On Rails,Ruby,Activerecord,我有一个表Users,其中有一个名为'r\u status'的列,类型为string。它基本上是该用户的关系状态 我还有另一个表请求,它需要有一个首选属性数组,例如,['Single'、'Married'、'discovered']。稍后,我将需要根据首选属性数组中的内容查询用户 我想知道我做这个模型的最佳方式是什么?我知道我可以在“文本”类型的字段中存储一个串行数组,但这不允许我直接查询,而是首先要查询请求,然后反序列化数组,然后再次查询 有更好的办法吗 我曾考虑创建一个名为“Relation
Users
,其中有一个名为'r\u status'
的列,类型为string
。它基本上是该用户的关系状态
我还有另一个表请求,它需要有一个首选属性数组,例如,['Single'、'Married'、'discovered']。稍后,我将需要根据首选属性数组中的内容查询用户
我想知道我做这个模型的最佳方式是什么?我知道我可以在“文本”类型的字段中存储一个串行数组,但这不允许我直接查询,而是首先要查询请求,然后反序列化数组,然后再次查询
有更好的办法吗
我曾考虑创建一个名为“RelationshipStatus”的新表,但该表将只显示在列上,即字符串“status”。仅仅为了能够直接查询而创建一个只有1列的表,值得吗
谢谢使用
序列化
几乎总是一个很快就会造成麻烦的方法;如果您正在考虑使用序列化
,请三思。关联表几乎总是正确的选择。如果您将允许的值存储为::Single::marred::discovered:“
,那么您可以使用allowed进行搜索,如“%::::%”
,虽然不太好,但它可以工作如果您经常根据该信息进行查询,您还应该创建一个新表,这不是问题。我正在构建一个在线考试应用程序,我有一个表,只存储用户角色的名称,有1列和3行。一个新表不会使数据库变大,并有助于以后的工作。@KienThanh如何控制“角色”表?也就是说,你是否有固定的行,固定的行,并且像ENUM一样对它们进行引用?在我的应用程序中,一个用户有多个角色,我只需要设置多对多关联。你需要控制什么?