Database-Design

MS Access 和多個使用者

  • February 23, 2022

我正在尋找有關 Microsoft Access 和數據庫設計的幫助。

我一直在 Microsoft Access 上開發一個數據庫應用程序以供我的組織使用。我在醫院工作,我們有一種非常老式的(!)方法來跟踪我們的病人在醫院的位置,以及他們出了什麼問題。我們每天創建一個 Word 文件,該文件儲存在 LAN 的共享驅動器上。可以想像——當涉及到諸如試圖維護某種審計跟踪之類的事情時,這將成為一場噩夢!

我的替代解決方案是一個關係數據庫,它分為一個包含查詢、表單和報告的“前端”,以及一個由 15 個表組​​成的“後端”。這兩個都是 Access DB 文件,包含在網路驅動器上的文件夾中。整個數據庫結構並不太複雜——它本質上是一個包含患者詳細資訊的表,其他表包含與會診詳細資訊、血液檢查、掃描結果等相關的詳細資訊——基於患者的一對多關係連結唯一的醫院編號。患者列表本質上是嵌入在前端的報告,基於提取數據庫中目前標記為“已接受”的患者的查詢。

當一個使用者使用數據庫時,它執行得相當好,在本地機器上執行時執行得很快,但問題是——它慢得令人沮喪——有時甚至根本不執行(導致 MS Access 停止響應並crash) – 當多個使用者嘗試通過網路驅動器訪問前端時。

我想知道在如何優化數據庫以跨 LAN 執行方面是否缺少一些東西?或者這是否是 MS 訪問的技術限制以及我是否應該將精力轉移到不同的解決方案(例如帶有 VB 前端的 SQLite)?不幸的是,除了基於共享文件的解決方案之外,不能使用任何其他解決方案,因為我的組織不支持它(例如,專用的 MySQL 伺服器)。

感謝您的想法!

我對 MS Access 的體驗類似,因為它不適用於多個使用者。您最好使用為多個使用者設計的 RDBMS。

在美國,醫院對儲存和保護患者數據有法律要求。在選擇 RDBMS 時,我會考慮當地法規。成本是較低優先級的要求之一。我的決策矩陣中的行級安全性 (RLS) 會很高。

IIRC - MS Access 前端可以連接到 MS SQL (Express) RDBMS。它可能能夠通過 ODBC 連接到其他 RDBMS。因此,您的所有 UI 工作可能都不會失去。

隨著您的成長,您將擁有多個與數據互動的應用程序。你應該計劃發生這種情況。我通過將大部分/所有數據邏輯放入數據庫(儲存過程等)來做到這一點。然後根據處理此類設計的難易程度來選擇前端技術。

除此之外:“我應該使用哪個 RDBMS?” 是本網站的主題。

引用自:https://dba.stackexchange.com/questions/307873