我遇到了一個問題,需要根據「期間」的銷售目標跟蹤實際銷售額。期間可以是一天,一個月,一個季度或一年。使用唯一值存儲時間段
起初,我想出了爲PeriodType枚舉(1-4,日,月,季,年分別)。鑑於此,我需要3個值來唯一地描述一個期間:1)PeriodType,2)PeriodYear的整數(例如2010,2011等),以及3)PeriodNumber的整數。
所以,舉例來說,{} 1,2011,38將是2011年的一天2月2日,或者,{} 3,2,2010將在2010年或者{} 2,4,2012第二季度將是四月份,2012年
具有露出這三種屬性的對象是沒有問題的。但就數據庫而言,我試圖弄清楚如何將一個實體(如目標或銷售)的關係存儲到一個時期 - 在每個表中有3列並不高雅,期間關係。一種方法是爲Period創建一個表,其中包含主鍵和其他3個值 - 但將Period保留下來是沒有意義的,因爲這是一個可以計算的時間概念。
什麼是代表我的一個「週期」與一個唯一值的定義的最佳方式?或者我對一個時期的定義是錯誤的,並且有一種更簡單的方法來做同樣的事情?
感謝您的答案APC。是的,該計劃的銷售期限制爲PeriodType of Day。目標期間不會有PeriodType約束。 考慮到這一點,我可以使用一個銷售日期時間和一個目標(開始和結束)兩個日期時間。但是看起來像邏輯去判斷哪個時期類型給出了兩個日期時間會很困難(但是解密單個值可能並不困難?)。 – 2011-04-30 17:16:10
另外,在給定不同時區以及時間部分被截斷的情況下(即可以輸入兩個不能解析爲受支持時段的日期時間),數據似乎很容易被破壞。但是,也許這只是對更改數據進行嚴格驗證的問題。但事實依然是,這個要求對時區不敏感,但不同的開發環境可能會不經意地強加它們,這會使驗證更加複雜。 – 2011-04-30 17:16:17