2011-07-15 29 views
1

我有誰想要開發使用Access 2007的既定短期目的的應用程序客戶端,進入2007年適合自己的規格:如何解釋Access 2007的開發與SQL Server的風險

  • 約30K主記錄
  • 6個或更少的用戶
  • 部門文件服務器

的問題是,客戶端是非常技術上天真,一點也不知道他們可能會麻煩如果範圍增加。該應用程序將被存儲將被上傳到企業系統的主數據,我擔心,從現在開始我會聽到任何的下列問題零六個月

  • ,我們需要保持所有的歷史數據(突然間,我們有3M行)
  • 我們需要細粒度和密閉用戶級安全
  • 我們不斷收到損壞的數據記錄
  • 我們的數據庫沒有備份三個月(因爲用戶保持它打開)

我已經完成了一些小型的Access數據庫,但是我是一名貿易SQL服務器開發人員,我知道如何使用它來解決大多數問題。我不知道我的客戶是否應該擔心他們選擇的技術 - 如果他們應該這樣做,我不能100%確定如何最好地向他們傳達風險。

+1

您可以解釋您提到的風險,並建議從SQL Server Express開始,它肯定會滿足當前的需求並消除成本問題。如果需要的話,遷移到SQL服務器的企業版本將變得更容易。 – Fishcake

+1

這裏的問題是否Access是一個合適的前端或者它是否是一個合適的數據存儲?在我看來,上述「反對」中沒有任何內容適用於除後端之外的任何內容。 –

+1

重要的是要注意,你不打算用sql server來構建你的表單和報表。所以,當你建議使用SQL服務器時,你計劃用什麼來開發前端應用程序部件?你不會調用VB.net數據庫系統,並問我應該使用vb.net還是sql服務器? Access是GUI開發工具,您可以自由選擇要使用的數據庫引擎。該數據庫引擎可以是JET(或新引擎是ACE),或者您可能正在使用Oracle或SQL服務器或MySql。但是,我沒有看到SQL Server如何替換vb.net或Access? –

回答

3

我擔心從現在開始我會聽到任何的下列問題六個月:

  • 我們需要保留所有的歷史數據(我們突然有3M 行)

300萬行不一定是Jet/ACE數據存儲的交易斷路器。取決於每個行中的數據量。

  • 我們需要細粒度和密閉用戶級安全

這是一個令人信服的理由來移動數據存儲到客戶端 - 服務器數據庫。

  • 我們保留通過訪問偏執狂讓損壞的數據記錄

這應該幾乎從未有適當的訪問實現發生,違背了索賠。它發生,如果你運行一個不可靠的網絡。但是,如果這是你的客戶的情況,你應該修復網絡問題或者拒絕訪問數據存儲。

  • 我們的數據庫沒有備份三個月(因爲用戶保持 打開它)

可以建立在艾爾文邁爾的KickEmOff方法。但目前< = 6個用戶,現在可能更容易處理這種情況而無需代碼。請讓他們關閉足夠長的時間進行備份。當你的自動備份程序嘗試失敗時,你可以創建一個通知,所以這不應該是一個不變的事情。

無論如何,建議您設計當前的應用程序,以便最終遷移到SQL Server將不那麼麻煩。避免特定於Access的功能:超鏈接數據類型;查找字段;多值字段;附件字段;等等。由於您對SQL Server有經驗,因此創建測試SQL Server數據庫並將Access前端的副本鏈接到它應該相當容易。在開發Access前端時定期進行測試。然後,當客戶端意識到需要將數據存儲移動到SQL Server時,您看起來像英雄。

0

使用Access的SQL對於非技術人員來說非常有吸引力,這裏有價格和GUI優勢。我想給你的情景,那麼也許「客戶」是正確的 - 他們是不是永遠!

但是,你的4個「以下問題」真的回答你自己的問題。

3

我在一個混合的Sql/Access開發商店中瞭解您的擔憂,但Access的絕對可用性經常勝出。在我們擁有關鍵任務數據並需要使用Access的情況下,我們只使用鏈接表 - 兩全其美,Sql處理安全性,備份等,Access提供前端。

2

對我來說,顯而易見的答案是開發一個Access前端到Access的後端,用於初始實現,但是考慮到將SQL Server的後端擴展到後端進行開發。

這意味着只需將常識應用於您所做的事情,就像@HansUp所建議的那樣(即不使用特定於Access的功能),並設計您的數據檢索以便它可以在服務器後端正常工作。另一方面,如果增加的數據量或安全問題實際上不僅僅是遠程可能性,而且可能成爲應用程序生命週期中的問題,那麼我會使用SQL Server後端服務開始。但是你對這種情況的描述確實聽起來不像是這種情況。

當然,腐敗和備份問題完全錯位。正確的維護和備份必須到位,操作環境必須穩定,但所有這些都適用於任何數據庫引擎,而不僅限於Jet/ACE。

+0

@dportas你們都需要冷靜下來。如果你想爭取一些東西,就在場外進行。大衛,這是我第二次向你發出警告,甚至不嘗試播放「不是我」的卡片。如果你*吸引*噪音,我們會處理這一點,就像你*產生*噪音一樣。現在是平民,*你們兩個*。 –

0

如果您的用戶在技術上是天真的,那麼使用技術語言沒有多大意義。如果可能的話,當我向用戶講話時,我使用的語言和術語與用戶所理解的相同。在可能的情況下也要恭維你的用戶,這讓他們感覺很好,並讓你看起來很好。這裏有一些建議的想法。

使用Access 2007是一個非常好的主意,易於開發和更改以滿足您的需求。然而,使用另一個免費工具(即SQL Express來存儲數據)有許多非常強大的技術原因。

爲什麼要使用SQL Express?

它的免費!

數據的安全性將是一個非常高的優先級(即使客戶端沒有提到這使用這個作爲一個原因)。指出從SQL相比於SQL服務器竊取所有數據是多麼容易。有關Access安全性的詳細信息,請參閱本書。 SQL服務器的SQL服務器的用戶級別安全性更簡單和容易,並且實現成本更低,而且更安全。

備份數據。爲了備份訪問數據庫,沒有人可以使用數據庫,甚至連接到數據庫。隨着SQL服務器可以隨時備份它。使用其他免費工具減少停機時間或換句話說提高生產力。

數據損壞。 Access數據庫的一個問題是數據庫損壞。這是什麼意思?有可能失去長達數天的工作量,對於SQL服務器來說,這個問題發生的可能性要小得多。甚至有些情況下無法恢復數據庫。因此,如果使用SQL服務器,這種生產力損失可以被最小化。

當這個工具獲得更大的認可和其他部門希望使用它,毫無疑問,它會。如果您使用SQL Server Express作爲數據存儲,則遷移到更大型的企業數據庫系統將更容易,開發成本更低。

以上只是建議,基於用戶希望儘可能少花錢的假設以及您在發佈中投入的限制/資源。

我也明白,不是每個人都會同意我在上面提出的建議。它們並不意味着詳細的技術要點,更像是勸說技術上天真的客戶端考慮使用SQL服務器express作爲後端數據庫用於部門應用程序的Access數據庫

+1

關於腐敗的評論被大大誇大了。自從1996年以來,我已經有數十個使用Jet/ACE後端的客戶端用於他們的旗艦Access數據庫應用程序,並且在那段時間內沒有人丟失任何大量數據(例如,在一種情況下,例如丟失了3條記錄)。失去「工作日」意味着沒有備份,這是部署錯誤,而不是Access中的缺陷。 –

+0

HansUp對不起繼承人的鏈接http://www.amazon.com/Microsoft-Access-Database-Protection-Security/dp/1590591267 – BobF

+0

David-W-Fenton感謝您指出我的錯誤,我的意思是一天的工作。我的觀點是基於我以前的經驗。 – BobF

1

向您的客戶解釋您將必須收取更多的錢來創建,實施,維護,修復以及稍後升級應用程序。解釋他們長期不會省錢,如果他們繼續前進,讓他們現在做好準備,他們會過得更好。話雖如此,我同意@HansUp的建議。您可以向客戶提供他們想要的東西,併爲可能發生的事件做好準備。將其視爲工作安全。