Я работаю над системой, которая предсказывает футбольные матчи на работе. У меня есть несколько уже существующих баз данных, каждая из которых содержит в основном одни и те же данные, хотя некоторые поставщики предоставляют больше данных, чем другие. У меня есть основной набор полей, которые использует мое приложение и которые предоставляют все поставщики:
homeTeamId, awayTeamId, fullTimeHomeGoals, fullTimeAwayGoals, homeShotsOnTarget, awayShotsOnTarget и т.д. ...
Поскольку эти базы данных были получены из разных источников, имена полей могут быть разными. Также некоторые из этих данных носят субъективный характер (определение попадания в цель различается). Это означает, что мне нужно знать, от какого поставщика пришло совпадение. Существует также частичное совпадение, поскольку у нескольких поставщиков будут данные для конкретного соответствия.
В настоящее время мы используем один источник данных за раз, но мы будем использовать двух или более поставщиков одновременно в зависимости от конкуренции, которая будет проводиться этим поставщиком в будущем (выбирая на основе конкуренции, мы устраняем проблему дублирующих совпадений ).
Моим решением было использовать XML для хранения сопоставления fieldName. * 1009 например *
<Schemas>
<Schema>
<SchemaName>VendorA</SchemaName>
<TableName>VendorA_MatchResults</TableName>
<FullTimeHomeGoals>homeFullTimeScore</FullTimeHomeGoals>
Etc...
</Schema>
</Schemas>
Тогда всякий раз, когда мне нужно поле для SQL-запроса, ищите поставщика, указанного пользователем в XML-файле конфигурации задания, и ищите поля, относящиеся к этому поставщику данных. Когда мы подошли к использованию результатов двух поставщиков, я планировал использовать представление и рассматривать его как нового поставщика в XML.
Это, должно быть, довольно распространенная проблема, но я не смог найти в Интернете ничего, что бы обсуждало, как ее решить. Мой инстинкт инстинкт говорит, что БД должна иметь возможность обрабатывать это внутренне, возможно, с целью?
Буду благодарен за любые советы или идеи.
Для фона я использую MySql и Java для разработки этого приложения.