Как обрабатывать несколько схем, содержащих одинаковые данные - PullRequest
0 голосов
/ 15 августа 2011

Я работаю над системой, которая предсказывает футбольные матчи на работе. У меня есть несколько уже существующих баз данных, каждая из которых содержит в основном одни и те же данные, хотя некоторые поставщики предоставляют больше данных, чем другие. У меня есть основной набор полей, которые использует мое приложение и которые предоставляют все поставщики:

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 для разработки этого приложения.

1 Ответ

0 голосов
/ 15 августа 2011

Я думаю, что ты делаешь хорошо.

Вы должны создать класс, который будет хранить эти конфигурации для каждой схемы.Сохраните эти конфиги в Map.Убедитесь, что эти записи и их конфигурации взяты из файла конфигурации, как вы это сделали.

Я бы порекомендовал Spring здесь, это облегчит вашу жизнь.Каждый раз, когда вы хотите добавить нового поставщика, вам просто нужно отредактировать этот файл конфигурации и перезапустить приложение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...