2016-03-11 24 views
0

如果我想在Rails中有一個記錄有許多選項,如選擇時間,那麼什麼是最好的方法將它存儲在記錄中?我不想把時間設置爲對象並使用has_many,因爲12:17 pm並不是真正意義上的對象。我用什麼來將變量大小列表放入ActiveRecord中?Ruby on Rails:ActiveRecord與數據列表(如has_many的數據片段,而不是對象)

舉一個例子,考慮一個視頻集合中的視頻數據庫。對於每個視頻,我們都需要一個所有觀看日期的列表。我們也無需在所有視頻中搜索日期,我們只希望能夠列出並編輯給定視頻對象的日期。

+1

這些時間/項目的用途是什麼?他們只是顯示。你是否需要搜索它們?別的東西?你在用什麼數據庫? (也可能是獨立時間不適合作爲對象,但是有其他數據與時間有關係) – Doon

+0

感謝您的提問 - 我將用示例更新原始帖子。 –

回答

0

我明白爲什麼把Times作爲自己的數據庫表看起來不美觀,但它可能是最簡單的選擇。

數據庫表通常會被創建,而且不是很漂亮 - 例如連接表。也許這個模型可能被稱爲TimeOption,它會有一個外鍵。似乎你已經明白如何做到這一點,儘管如此。

我還假設選項是動態的,否則它們可以存儲在應用程序常量中。

另一種選擇是使用Postgres的數組數據類型,這是新的,但我沒有用過。

另一種選擇是將Times數組序列化爲jsonyamlcsv,然後將序列化的字符串存儲在數據庫中。反序列化數據以讀取並重新進行保存。

+0

我正在使用sqlite3,但我想我可以遷移到並學習Postgres,但似乎這應該是簡單的sqlite3或MySQL。它有跟蹤has_many的能力,所以它必須有一些存儲列表的機制。 儘管實際上序列化數組對於數據是非常規律的(如時間)有相當的意義 - 我認爲這可能是最簡單的解決方案,但如果它是唯一合理的解決方案,則會令人失望。 –

+0

在你的例子中,我認爲你可能想存儲有關查看的數據。電影has_many查看,並且該查看包含日期/時間,誰查看它等。但如果不是那麼序列化或數組數據類型是我會看(這就是爲什麼我問什麼數據庫你在哪裏使用) – Doon

相關問題