2008-11-14 4 views
0

Dans un ORM vous pouvez avoir belle syntaxe:solutions ORM pour le multi-base de données requêtes

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

Et dans le Django ORM encore gère assez bien les relations clés étrangères et beaucoup de nombreuses relations tout au long de l'ORM .

Cependant, MySQL, vous pouvez exécuter une requête comme ceci:

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 

Je suis à la recherche d'un ORM qui peut prendre en charge ces types de requête en mode natif, mais ne peut pas vraiment voir tout ce qui fait.

Existe-t-il des ORM existants capables de faire cela? Ou existe-t-il des stratégies alternatives pour s'attaquer à ce problème?

Chaque fois que j'ai utilisé un framework comme django pour créer un site, j'ai tout conservé dans la même base de données parce que j'étais conscient de la limitation. Maintenant, je travaille avec des données qui sont réparties dans de nombreuses bases de données différentes, sans autre raison apparente que le fait d'avoir un espace de noms.

Répondre

2

Peut-être vaut-il la peine de regarder quelque chose à un niveau inférieur à celui de l'ORM? Par exemple, quelque chose comme C-JDBC fournit un pilote de base de données «virtuel» qui parle à un groupe de bases de données dans les coulisses. (Les tables peuvent être distribuées sur plusieurs serveurs)

(Je réalise que vous utilisez Python, donc cet exemple spécifique ne serait utile que si vous pouviez exécuter Jython sur la JVM comme une plate-forme intégrant ainsi - mais je devine bibliothèques similaires existent probablement plus proches de vos besoins spécifiques)

+0

Merci, c'est une très bonne suggestion. –

+0

J'ai vérifié la page C-JDBC et après un peu de lecture, est tombé sur le Connecteur Tungsten http://community.continuent.com/community/tungsten-connector c'est pour Sequoia la suite de C-JDBC. Devrait travailler avec Python –

Questions connexes