2011-09-16 51 views
1

我解析文本文檔並將大部分數據轉換爲關係格式。各種各樣的日期格式被使用,但其中之一是「1997秋季」。在關係數據庫中存儲非特定日期(例如「1997年秋季」)

什麼是最好的方式來存儲這種信息,這是非特定的一種意義(不是絕對日期),而不會失去「落」的粒度提供?

作爲附加信息:我的具體數據庫是MySQL。

+0

您是否需要對結果進行排序,以便1997年夏季的特定日期能夠在「1997年秋季」日期之前排序? –

回答

3

有很多我見過的技術,但沒有將它加載到直接的varchar中,您必須決定範圍。您可以使用包含1997-09-01的常規日期列,但增加了一個列,指出季度特徵的'S'(使用第3,6,9,12個月的第一個)'Q'(使用季度幾個月的第一,四,七,十)或其他什麼。同樣的學期和類似的事情。

當解釋這樣的日期 - 特別是在「這個事件發生在一定時間之前還是之後」時,你必須決定如何處理它們。比如整個時期是否要在約會之前來臨。

您可以將這樣的「日期」轉換爲具有說明和開始日期和結束日期的期間表中的條目,然後鏈接到期間。然後,1997年秋季是一個數據庫實體,它被很好地定義爲表中的一行,其他行具有外鍵。這並不排除邏輯決定這些日期的必要性,但它確實意味着這樣的邏輯可以是表驅動的。

在我打電話之前,它將更多地取決於使用場景和各種數據。