1

按照this other question的規定,您可以將序列化的數據存儲在數據庫中。我想知道的是,如果我真的應該或只是創建一個簡單的額外表。在數據庫中存儲序列化數組的反模式? Rails

對象有一個關聯號碼列表。

可能需要檢查一個對象是否有特定的編號。

永遠不會更新它。

不會查詢它。

有財產數字序列化?

是否有屬於對象的表號?

順便說一句,使用rails 5.1和postgresql。

謝謝

回答

1

由於您使用PostgreSQL,您實際上有第三個選項:使用數組列。

創建列時添加array: true選項:

t.integer :column_name, array: true 

然後model.column_name將是一個Ruby的數組,你可以使用所有PostgreSQL array operators and functions一起工作和查詢陣列。

我傾向於認爲用單獨的表格通常會更好,但如果需要,數組列通常很方便並且很容易展開到單獨的表格中。我想遠離serialize。這會將YAML的blob引入到您的數據庫中,並且YAML難以查詢,更不用說在數據庫中操作了。

+0

是的,意外提交。謝謝。我刪除了我的答案,並將刪除此評論。 –

相關問題