我們必須保存每年一次的重複事件的日期和月份。 (把它當作他們當年的發票發送給客戶的那一天。)在數據庫中僅保存日期和月份的最佳方式
我們將不得不使用這些信息做一些計算。例如,如果客戶每年支付兩次。那麼我們不僅需要檢查今天是否是今天,而且如果這一天是在6個月內。
我們現在有幾種選擇: a)我們將信息保存在日期字段中,但忽略年份。 b)我們在數據庫date_day和date_month中創建兩個int字段。 c)我們創建一個varchar字段,然後做一個正則表達式和分割例如每次我們做一些計算時,每次都會增加31.12。
我們做了幾個測試,發現c)肯定太慢了。但我們仍然有選擇a)和b)。首先我們想要去b),但經過一些測試後,我們更傾向於a)。
是否有一個很好的技術原因會真正使一個選項比另一個好得多?
(我們使用目前的MySQL,如果這是很重要的。)
同意,其在那裏它的部分都應該被忽略的數據字段是非常糟糕的,很可能會在未來咬你。我投贊成票b。 – 2009-06-25 10:55:30
是的,這一年並不重要。我們已經有合同開始日期和合同結束日期。我們只需要計算是否必須發送發票。我們正在做的第一個選擇是檢查「今天」是否在開始日期和結束日期之內。只有這樣我們才能檢查我們是否必須今天生成發票。 – 2009-06-25 14:01:54