私は仕事中のサッカーの試合を予測するシステムに取り組んでいます。いくつかのベンダーが他のベンダーよりも多くのデータを提供していますが、私は幅広く同じデータを含むいくつかの既存のデータベースを持っています。私は自分のアプリケーションが使用すると、すべてのベンダーが提供している分野のコアセットがあります。これらのデータベースは、異なるソースから来ているので同じデータを含む複数のスキーマを処理する方法
homeTeamId、awayTeamId、fullTimeHomeGoals、fullTimeAwayGoalsなどhomeShotsOnTarget、awayShotsOnTargetを、...
をフィールド名は異なります。また、このデータの一部は主観的なものです(ターゲット上のショットの定義が異なります)。これは、どのベンダーがマッチしたのかを知る必要があることを意味します。いくつかのベンダーが特定のマッチのデータを持つため、重複もあります。
現時点では、一度に1つのデータソースを使用していますが、今後、そのベンダーが対象とする競争に基づいて2人以上のベンダーを同時に使用します(競合に基づいて、マッチ)。
私の解決策は、XMLを使用してfieldNameのマッピングを格納することでした。例えば
<Schemas>
<Schema>
<SchemaName>VendorA</SchemaName>
<TableName>VendorA_MatchResults</TableName>
<FullTimeHomeGoals>homeFullTimeScore</FullTimeHomeGoals>
Etc...
</Schema>
</Schemas>
その後、私は、ベンダーを見て、ユーザがジョブ設定XMLで指定し、そのデータベンダーに関連するフィールドをルックアップしている、SQLクエリのフィールドを必要なとき。私たちが2つのベンダーからの結果を使用するようになったとき、私はビューを使用してこれをXMLの新しいベンダーとして扱う予定でした。
これはかなり一般的な問題であるに違いありませんが、私はそれに取り組む方法についてオンラインで何かを見つけることができませんでした。私の腸の本能は、DBはこれを内部的に(おそらくビューで)扱うことができるはずだと言いますか?
アドバイスやアイデアに感謝します。
バックグラウンドでは、MySqlとJavaを使用してこのアプリケーションを開発しています。
私には[ETL](http://en.wikipedia.org/wiki/Extract,_transform,_load)のような問題があります。 –