2017-06-12 5 views
0

私はサーベイアプリケーションのデータベースを30個持っており、それぞれに約100列の結果表があります。ほとんどの列は同じですが、各調査には1つまたは2つの実数パターンが追加されているように見えます(これは調査の追加の質問と結果です)。すべてのテーブルを1つの大きなマスターテーブルに結合するためのステートメントに取り組んでいるので、コードはかなり複雑になっています。複数のデータベースからこれらのテーブルをマージし、すべての行と列を選択するだけで、列が存在する場合はマージし、新しい列が見つかる場合は作成する方が効率的ですか?すべての行と列を持つ複数のデータベースから複数のテーブルをマージする

+0

[DBMS](https://en.wikipedia.org/wiki/DBMS)はどちらを使用していますか? Postgres?オラクル? –

+0

私はちょうどこのプロジェクトを述べています。私の前の誰かがmyphpを使ってアンケートを作成していました。 30のテーブルはすべて同じ調査ですが、質問テキストを変更したり、質問を追加したりすると、新しいデータベースが作成されます。このため、私は、非常に断片化されたデータベース構造で、すべての変更がどこで行われたのかという記録はなく、調査に関する完全なレポートを作成しようとしました。 1つの大きなコンテナにすべてを収めて、データの操作を開始し、私たちが持っているものを見るための方法を見つけることを望んでいました。 – Madhatt3r

+0

これはあなたが使用しているDBMS( "myphp"は私が今までに聞いたデータベースではない) –

答えて

0

いいえ、まったく同じではない類似のテーブルを1つにマージする自動方法はありません。少なくとも、私が知っているデータベースシステムではありません。

データベースのinformation schema(または同等のもの)に依存するかなり単純なスクリプトを使って、そのようなものを自動化することができます。

しかし、テーブルが30個しかなく、1つの列または2つの列だけが異なる場合は、それが価値があるかどうかはわかりません。コピーと貼り付けとマイナーな変更を行う手動アプローチは、おそらくもっと速くなるでしょう。

また、個々のテーブルに固有の「余分な」列が結合テーブルに入る必要があるかどうかを検討してください。大きな単一のテーブルを作成するというポイントは、すべてのデータを一緒に処理/分析することです。単一のソースにのみ何かが適用される場合、これは不可能です。

関連する問題