請問各位大大週期性的資料庫是如何規劃?!
例如 記帳軟體! 每個月扣款設定...
每月1號 扣除 xxx 元 想達到,如果檢視下一年或未來月份的話,未來週期的紀錄會一一顯示出來,但暫時未列入總計,並以點選該筆紀錄 啟動此筆紀錄才實際記帳算入資產總計中。
想請教是否有甚麼正規的規劃方法?!
如果以記帳軟體為例,目前想到的方法好像有一些問題
紀錄每筆資料的資料表內
+週期欄位 設定 年、月、日 三種狀態
+週期時間欄位 存入數字 代表 幾年,或幾月 重複一次 3代表 3為週期 再依據 週期欄位去迴圈
+週期截止期日 null 表示永不停止
+連動的欄位 代表第一筆的 id 更新 ,一起做變動
不過有一個問題就是不設截止日期產生出來的資料量會很多,該如何去修改資料庫,才能達到可以檢視未來計入的效果?又可以讓週期不停止。
另外一個問題就是 如果不是更新第一筆,後續的都不會一起更動! 該如何解決?!
例如:已經過三次週期了,第四次因為變動所以金額要增加,如果只修改第四次,第四次後不會一起變動。
如何規劃週期性資料的資料表!
資料表是資料存儲(Model). 依照商業邏輯(Business Logic; Control)自資料庫取得資料, 依商業邏輯運算資料, 再呈現出(View)資訊.
週期是商業邏輯. 資料表只需要記載時間, 時間可以是日期或期間, 您要怎麼計算週期或異動資料庫就是您的商業邏輯.
你應該是一個週期只出一張同樣的報表吧?
可以設定一張資料表儲存週期性資料,檢視時依後端邏輯(是否過期,重複時間等)時帶出資料,在client端做設定是否寫入真正的結果,最後存入真正的結果。