如this other question中所述,您可以将序列化数据存储在数据库中。我想知道的是,如果我真的应该或只是创建一个简单的额外表格。
对象有一个相关数字列表。
可能需要检查一个对象是否有特定的数字。
永远不会更新它。
不要查询它。
将属性编号设为序列化?
是否有属于对象的表号?
BTW即时使用rails 5.1和postgresql。
由于
答案 0 :(得分:1)
由于你正在使用PostgreSQL,你实际上有第三种选择:使用数组列。
创建列时添加array: true
选项:
t.integer :column_name, array: true
然后model.column_name
将是一个Ruby数组,您可以使用所有PostgreSQL array operators and functions来处理和查询数组。
我倾向于认为通常使用单独的表会更好,但是如果需要,数组列通常很方便并且很容易展开到单独的表中。
我远离serialize
。这会将一大堆YAML抛入您的数据库,并且YAML很难查询,更不用说在数据库中进行操作。