Ruby on rails 在数据库中存储序列化数组是否为反模式?轨道

Ruby on rails 在数据库中存储序列化数组是否为反模式?轨道,ruby-on-rails,arrays,activerecord,serialization,anti-patterns,Ruby On Rails,Arrays,Activerecord,Serialization,Anti Patterns,如中所述,可以在数据库中存储序列化数据。我想知道的是我是否真的应该或者只是创建一个简单的额外表 对象具有关联数字的列表 可能需要检查对象是否具有特定编号 永远不会更新它 我不会质疑的 是否将属性号序列化 是否有属于对象的表编号 顺便说一句,我使用rails 5.1和postgresql 谢谢因为您使用的是PostgreSQL,所以实际上您还有第三个选择:使用数组列 创建列时添加array:true选项: t.integer :column_name, array: true 然后model.c

如中所述,可以在数据库中存储序列化数据。我想知道的是我是否真的应该或者只是创建一个简单的额外表

对象具有关联数字的列表

可能需要检查对象是否具有特定编号

永远不会更新它

我不会质疑的

是否将属性号序列化

是否有属于对象的表编号

顺便说一句,我使用rails 5.1和postgresql


谢谢

因为您使用的是PostgreSQL,所以实际上您还有第三个选择:使用数组列

创建列时添加
array:true
选项:

t.integer :column_name, array: true
然后
model.column\u name
将是一个Ruby数组,您可以使用所有

我倾向于认为使用单独的表通常会更好,但是如果需要,数组列通常很方便,并且很容易展开到单独的表中


我会远离
序列化
。这会向数据库中抛出一团YAML,YAML查询起来既困难又麻烦,更不用说在数据库内部操作了。

是的,意外提交。谢谢我删除了我的答案,也将删除此评论。