2013-08-29 64 views
0

我的公司正在爲我們的員工創建一個調度程序來使用。默認Quartz.Net數據庫結構的優缺點是什麼

我的兩位同事希望使用提供的Quartz.Net數據庫來添加有關將要運行的項目的信息。 (例如,用戶界面提示文本,參數值類型,允許多個值)

我不同意這一點,因爲數據庫是直接映射到Quartz.Net庫的調用。在我看來,數據庫只存在於持續計劃和觸發器的方法中,如果關閉計算機的話。

我確定Quartz數據庫不應該有任何邏輯與其將要使用它的項目相關聯。

由於我沒有廣泛的數據庫設計背景,因此我無法真正地論證我的觀點。

有人可以幫助我的優點/缺點添加到提供的Quartz.Net數據庫模式?

編輯:

他們不想改變現有的表,但要額外表添加到數據庫中&使用這些。

+0

你是說在數據庫中有額外的表格,或是在石英錶格中增加額外的列(例如QRTZ_JOB_DETAIL)? – sgmoore

+0

數據庫附加表 – SamuelKDavis

回答

1

我不認爲應該有一個大問題,但我會小心創建與石英錶的外鍵關係。

默認情況下,Quartz表/觸發器的前綴是QRTZ,這意味着設計器將它們命名爲不會與同一數據庫中的其他表發生衝突,因此他們必須期待這一點。

如果您的表格正在定義與石英錶的外鍵關係,則這會對石英錶產生強烈的依賴關係。

例如,如果您正在創建一個歷史記錄表來顯示每個作業的計劃時間,並且您選擇從您的表創建一個外鍵約束到QRTZ_JOB_DETAIL表,那麼這意味着您將無法刪除作業(除非你刪除了歷史表的相關記錄)。

因此,最好只用作業名稱列創建歷史記錄表,而不強制引用完整性。

如果要鏈接到石英錶中,還需要考慮如果要升級到將要重新設計數據庫結構的未來Quartz版本,會發生什麼情況。

其中一個主要的優點是信息都在同一個地方。您需要備份一個數據庫,並且如果系統/服務器崩潰並且需要從備份中恢復,那麼您知道表格和石英錶中的信息是一致的。

如果您有一個現有的Sql數據庫,並且您想安排與數據庫相關的作業。在這種情況下,將Quartz表添加到現有數據庫是合理的,而不是維護兩個數據庫。

+0

綜合答案。 –

相關問題