2012-07-13 44 views
1

什麼是在單個字段或屬性中以不同精度存儲日期/時間數據的好方法。例如,如果我有一個具有release_date屬性的Movie類,並且有時它會是一個特定的日期,如2012-12-24,而其他時間可能只是1948年,而不是一個月或一天。 Ruby不允許使用零值日期部分。Rails和MongoDB中日期的任意精度

到目前爲止,我唯一的想法是將數據以多態方式存儲在另一個存儲時間的字段中,數字或時間,日期值將始終作爲整數存儲,但即使這看起來真的很難看。除此之外,我能想到的是將每個數據部分分開存儲,但這聽起來像會使整理一場噩夢。

也許有一種常見的做法,我不知道。

+0

你最終使用了什麼解決方案? – Stennie 2012-08-09 00:50:14

+0

如果我在必要的Mongoid位中添加了幫助從DB進行存儲和調用的功能,部分日期看起來會很好。不應該太糟糕,因爲它可以轉換爲/從一個整數開箱。然而,關於寶石有一些奇特的事情,在我扣動扳機之前我需要更多的關注。 – farski 2012-08-09 17:26:28

回答

0

使用partial-date寶石。

一個簡單的日期類,可用於將部分日期值存儲在 單個列/屬性中。一個示例用例將包括一個存檔, 或完整日期未知的商品。年份爲 可選,可以爲負值。月和日是可選的,但 月必須一天

PartialDate之前設置::日期採用的是30位寄存器作爲後備存儲 日期的情況下,和位擺弄獲取或設置年,月,日的值。