Postgresql

PostgreSQL:連接到數據庫的替代方法

  • January 29, 2018

這是一個理論問題。因為這個原因,我將它發佈在這個網站上,因為我認為數據庫管理員可以提供更準確的見解。分隔兩個站點的線對我來說仍然不是很清楚,所以我可能弄錯了。

長話短說:有一個 Postgres 數據庫,需要創建一個類似訪問它的表單我已經沒有想法和/或缺乏一些關於如何做一些事情的知識(如果他們可以完全完成)

需要訪問單個表的某些欄位才能按需讀取和編輯它們。其餘數據按照傳統的ETL流程導入數據庫,但這些資訊需要手動按需插入,使用者將是非常喜歡Excel的業務人員。

以下是我考慮過的一些選項以及它們被拒絕的原因:

  1. Web 表單:開發它所需的時間是無法承受的。
  2. 通過與 DB 的 ODBC 連接分發基於 Access Application 的表單:每個使用者都必須同時安裝 MS-Access 和 psqlODBC 驅動程序,他們強烈反對這個 嘆息
  3. 具有與基於 Access 的類似形式,但在 Excel 中開發:從我所見和嘗試的情況來看,將數據從 PostgreSQL 拉到 Excel 是可行的,儘管不是那麼簡單(我對大多數名稱的大小寫有一些問題,如 Windows不區分大小寫,而 Postgres 不區分大小寫),反之則不然。**也許有一個 VBA 解決方案來推動?**我知道一些 VBA,如果可行,我可以設法找到解決方案。我知道如何通過 Access 中的 VBA 做到這一點,但 Excel 中使用的 VBA 有一組不同的資源,我不太了解它們。
  4. 讓這個單一的表由 FDW(外部數據包裝器)管理並分發一個連結到它的 Excel 文件(使用類似表單的“界面”):根據我的研究,我發現從csv文件導入/提取數據是一種常見的做法任務,但我沒有找到任何關於反轉數據流的內容:從 Excel 編輯“遠端”csv 文件。如果可以做到這一點,真正將 csv 文件動態連結到 excel 以便可以更新,它可以作為一個可行的解決方案

任何關於如何做到這一點的建議或見解將不勝感激。

編輯:

上述選項 3 和 4 被正式拒絕。我的大腦一定已經麻木了,甚至認為 Excel 推送數據是一種可能性。它從來沒有能夠做到這一點,它只是提取、視覺化和分析數據。而已。這就是 Excel 的全部內容。

Edit2:

我們已經成功地向客戶表明,在這種情況下,他想要從這個項目中得到什麼顯然是不可能的。所以他們重新考慮了它,並且約束集已經改變。我將做一個網路應用程序表單,就執行它所需的軟體而言,這是最好的解決方案。

我希望這對遇到類似情況的人有所幫助。感謝那些關心閱讀(和寫作)的人的關注:)

窮人的解決方案可能只是安裝 pgAdminIII,設置與數據庫的連接並使用它內置的過濾和數據查看/修改功能。

我承認這不會給您帶來很好的使用者體驗(大約 8 次點擊即可到達您要查看/編輯的表格),但設置起來非常容易。

一件重要的事情:您可能希望限制對使用者真正可編輯的表的訪問。一個好的方法可能是:

CREATE ROLE limited_editor;

GRANT USAGE ON SCHEMA your_schema TO limited_editor;
GRANT SELECT, INSERT, UPDATE ON your_table1, your_table2, ... TO limited_editor;
REVOKE ALL ON ALL TABLES IN SCHEMA your_schema FROM public;

GRANT limited_editor TO alice, bob, ...;

執行此操作時,撤銷訪問權限public可能會對其他使用者的權限產生一些不良影響。相應地修復它們(例如,通過設置更強大的editor角色,可以授予其他使用者)。

不用安裝 Access,而是讓 Excel 通過 ODBC 連結到 pg 表。

(而不是在所有機器上安裝 ODBC,只在一台機器上安裝它,執行所有 donfig 直到成功連接,重新啟動,然後將與 pg odbc 對應的所有系統資料庫數據 - 從那台機器 - 導出到.reg 文件。然後將 .reg 導入到目標電腦上的系統資料庫中。更快。)然後…設置 Excel 模板文件 (.xltx)(在伺服器上使用者可訪問的文件夾上)以通過 ODBC 連結到pg 表。這個 Excel 模板文件可以包含一個 XL 表(或一個數據透視表),它會自動讀取 pg 數據。

或者,可以將 Excel 配置為在每次有人打開文件時重新讀取數據。

然後使用者可以過濾和重組數據以適合自己,並在本地保存一個普通的 xlsx 文件。此本地 xlsx 文件還將包含指向 pg 表的連結,並且可以自動更新自身。

如果出現的新需求過於復雜,使用者無法自行建構,您可以在同一文件的新工作表中設置另一個版本的表格(或 PT),只需複制工作表,然後修改並保存即可。

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