2017-06-12 62 views
0

我有一個調查應用程序中的30個數據庫,每個數據庫都有一個結果表,每個表中有大約100列。大多數欄目是相同的,但每個調查似乎都有一個或兩個獨特的欄位,並沒有真正的模式(這些是調查中增加的問題和結果)。當我正在處理聲明以將所有表連接到一個大的主表時,代碼變得相當複雜。有沒有一種更有效的方法來合併多個數據庫中的這些表,並選擇所有行和列,以便在列存在時合併,並在遇到新列時進行創建?將多個數據庫中的多個表與所有行和列合併

+0

您正在使用哪個[DBMS](https://en.wikipedia.org/wiki/DBMS)? Postgres的?甲骨文? –

+0

我只是說明這個項目。之前有人使用myphp來創建調查。所有30個表格都是相同的調查,但他會改變問題文本或添加問題,他會創建一個新的數據庫。這讓我試圖用一個非常分散的數據庫結構來完成一項關於調查的完整報告,並且沒有記錄所有變更發生在哪裏。我希望能找到一種方法將它全部放在一個大容器中,開始處理數據並查看我們擁有的數據。 – Madhatt3r

+0

這並不回答你正在使用的DBMS(「myphp」不是我所聽過的數據庫)的問題, –

回答

0

不,沒有一種自動方式可以將一堆類似但不完全相同的表合併爲一個。至少,不是我知道的任何數據庫系統。

你可以用一個相當簡單的腳本自動化類似的東西,這個腳本依賴於你的數據庫的information schema(或等價物)。

但是,只有30個表格,每個表格只有一列或兩列不同,我不確定這是否值得。手動方法,複製和粘貼並進行微小的更改,可能會更快。

此外,請考慮各個表唯一的「額外」列是否需要進入組合表。製作一張大單表的重點是一起處理/分析所有數據。如果某件事情只適用於單一來源,這是不可能的。