2010-01-26 34 views
1

我需要在與財務年度關聯的數據庫表中創建實體(特別是合同)。這些合同將適用於項目。任何合同變更都將通過創建同一財政年度的新合同記錄進行記錄,但原始記錄將作爲歷史記錄與該項目保持關聯。這些項目可以持續數年,因此任何時候項目都會有每年的實時合同記錄以及該年的任何數量的歷史合同。如何創建財務年度的數據庫記錄

所有這些都是附帶的,但我試圖提供一些上下文。如果今年的合同 - 這將是容易的,我只是將年份作爲1月1日的日期字段存儲,或者只是一個整數。然而,合同運行的財政年度,我不知道如何解決這個問題。我不想要一個包含財政年度的單獨表格,因爲我不希望用戶必須維護這一點。我不希望將財政年度存儲爲字符串「2009/2010」,因爲這對於排序/提取數據並不理想。

任何想法會有所幫助,我迄今爲止最好的是有啓動和2列收官之年,只是「知道」出發是一年等

回答

2

的四月如果你沒有不同類型的財政年度(如美國開始一月,英國開始四月),那麼我會簡單地使用一個整數,並採用一個標準。例如Fin_Year = 2010意味着2010年3月結束的財政年度(2009/2010)。這不需要額外的表或存儲,含義是隱含的,你的代碼應該明白,Fin_Year是一種特殊的日期。

編輯: UK Government data standard使用結束年代表一個特定的財政年度。

+0

有了該鏈接以及我希望我可以爲您投票兩次Joel!我對這個解決方案的問題是隱含的知識,單一年的領域涵蓋了多年 - 誰來追我需要知道(是的,我知道評論幫助等,但我試圖使我的代碼非常簡單明顯) - 但作爲我在地方政府工作,您添加的鏈接驗證了隱含意義。奇妙的歡呼喬爾。 – 2010-01-26 10:57:24

0

+1如果存儲財政年度是必要的,那麼我同意喬爾。

但是,您可以考慮的另一種方法是僅存儲每個合同生效的日期(實際上您可能已經打算這麼做)。因此,數據庫模式本身不關心財務年限,但可以將這個邏輯放入查詢中。要查找當前財政年度的當前和歷史合約,請執行以下操作:

SELECT * FROM Contracts 
    WHERE StartingDate >= '20090401' AND StartingDate < '20100401' 
    ORDER BY StartingDate DESC 
+1

如果基於FY的加入數量很多,那麼這可能會令人望而卻步。另一方面,如果有很多基於日期的查詢,這可能是要走的路。 – 2010-01-26 10:36:31

+0

嗨託德,報告將在財政年度與財務系統的可能接口,但我主要同意你的意見。乾杯 – 2010-01-26 10:59:52

相關問題