Rails et les recherches en base de données

Bonjour,

Ma question concerne les “limitations” s’il y en des ORM (AR,
datamapper,
…) utilisés avec Rails.

Plus particulièrement je voulais savoir s’ils étaient bien adaptés pour
des
applications se basant sur un model assez complexe (plus de 8 entités
métiers avec des liaisons N:N) sur lequel des recherches sont à faire en
utilisant des critères d’un peu toutes les entités du model.

Un exemple de model pourrait tout à fait être un annuaire d’une grosse
boite avec des Business Unit contenant des services, avec des
personnes
ayant des fonctions dans les différents services etc…
La recherche de personnes se ferait alors à partir de critères de la BU,
ou
du service, ou encore à partir d’un nom, ou d’une fonction.
Par exemple :

  • “je cherche la liste des chefs de Service qui s’appelle Paul”.
  • “je cherche tous les developpeurs du service R&D bossant sur des
    technos
    web”.

Est ce que les ORM utilisables avec Rails permettent, (sont conçus pour)
exécuter ce genre de requêtes sans tout avoir à faire à la main?

Cette question fait partie à mon sens des questions à ce poser lors du
choix
de la techno à utiliser pour réaliser une appli.
En java je sais qu’hibernate et son api Criteria aide beaucoup. Je
voulais
savoir ce qu’il en était coté Rails.

Ou encore avoir un retour sur votre expérience concernant la mise en
oeuvre
de recherches en base un peu “touchies”.

Merci d’avance.

Mickael

La recherche de personnes se ferait alors à partir de critères de la BU,
ou
du service, ou encore à partir d’un nom, ou d’une fonction.
Par exemple :

  • “je cherche la liste des chefs de Service qui s’appelle Paul”.
  • “je cherche tous les developpeurs du service R&D bossant sur des
    technos
    web”.

Est ce que les ORM utilisables avec Rails permettent, (sont conçus pour)
exécuter ce genre de requêtes sans tout avoir à faire à la main?

Merci d’avance.

Mickael

Michael, je crois qu’on cherche la même chose; j’ai trouvé ceci:

http://wiki.rubyonrails.org/rails/pages/UnderstandingPolymorphicAssociations

J’essaie de réorganiser mon data model pour les utiliser.

Le 2 mai 2008 19:31, Mickael G. [email protected] a écrit :

Avec les associations correctes, tu peux faire toutes les requêtes ou
presque sans utiliser de SQL directement:
Annuaire.find(“MaBoite”).services.find_all_by_fonction(“Chef”,
:conditions => “name =‘Paul’”)
Tu peux simplifier ces écritures en “étendant” des associations:
Par exemple ajouter ca dans ton modele Annuaire:
:has_many services do
def chefs
find_all_by_fonction(“Chef”)
end
end
Te permet de simplifier la requete précédente par:
Annuaire.find(“MaBoite”).services.chefs.find_by_name(“Paul”)
etc.
Plein d’autres astuces te permettent de t’affranchir du SQL dans 95% des
cas.

Est ce que les ORM utilisables avec Rails permettent, (sont conçus pour)
exécuter ce genre de requêtes sans tout avoir à faire à la main?

Pour résumé, oui


Baptiste