ORM решения для запросов к нескольким базам данных - PullRequest
0 голосов
/ 14 ноября 2008

В ORM вы можете иметь хороший синтаксис, подобный этому:

my $results = Model.objects.all()[10];

А в Django ORM он даже довольно хорошо обрабатывает отношения с внешним ключом и многие-многие отношения по всему ORM.

Однако в MySQL вы можете выполнить запрос, подобный этому:

SELECT t1.column1
,      t2.column2
,      t3.column3
FROM   db1.table AS t1
,      db2.table AS t2
,      db3.table AS t3
WHERE  t1.id = t2.t1_id
AND    t1.id = t3.t1_id 
LIMIT  0,10

Я ищу ORM, который может изначально поддерживать эти типы запросов, но на самом деле не видит ничего, что делает.

Существуют ли существующие ORM, которые могут это сделать? Или есть альтернативные стратегии для решения этой проблемы?

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

1 Ответ

2 голосов
/ 14 ноября 2008

Может быть стоит взглянуть на что-то на более низком уровне, чем ORM? Например, что-то вроде C-JDBC предоставляет «виртуальный» драйвер базы данных, который взаимодействует с кластером баз данных за кулисами. (Таблицы могут быть распределены по серверам)

(Я понимаю, что вы используете Python, поэтому этот конкретный пример будет полезен, только если вы сможете запустить Jython на JVM в качестве платформы, интегрирующей таким образом - однако я предполагаю, что подобные библиотеки, вероятно, существуют ближе к вашим требования)

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