Le 07/01/10 12:38, Liste diff a écrit :
> Non, ce sont 2 tables séparées. Les logs sont directement générés par des 
> sondes physiques. Les sondes de températures envoient leurs mesures de 
> température à la table temperature_logs et les sondes d'humidité à 
> humidity_logs. Il y a également d'autres sondes qui envoient d'autres valeurs.
> 
> L'application que je dois créer consiste à détecter les logs d'une sonde qui 
> vient d'être mise en service et de permettre à l'utilisateur de donner un nom 
> à cette sonde (dans la table sensors). Cette table est la même pour tous les 
> logs, car les caractéristiques de toutes les sondes sont identiques.
> 
> Je veux ensuite pouvoir afficher les logs d'une sonde en faisant 
> logs = Sensor.find(1).logs 
> Dans la table sensors, je connais le type de sonde, je dois donc pouvoir 
> faire une requête sur la bonne table. Malheureusement je ne maîtrise pas 
> assez ActiveRecord et ruby pour savoir de quelle manière.
> 

Dans ton cas il faut se palucher les requêtes à la main alors.

def logs
  humiditylogs + temperaturelogs
end

Bien sûr tu récupéreras tout d'un coup. Il faut donc gérer au cas pas
cas de tes besoins. Le schéma que tu as n'es pas adapté à ta logique. En
effet, tu as les même donnée dans des tables différentes. C'est donc de
la dé-normalisation. Je suis pour la dé-normalisation en terme de
performance, mais forcement, cela implique plus de code à écrire car la
dé-normalisation est comme elle l'indique, contraire au règle. Le
contraire au règle implique forcement une logique qui t'es personnel ou
tout du moins à ton cas précis.

-- 
Cyril Mougel
http://blog.shingara.fr/
-- 
Vous avez reçu ce message, car vous êtes abonné au groupe "Railsfrance" de 
Google Groups.
Pour transmettre des messages à ce groupe, envoyez un e-mail à l'adresse 
[email protected]
Pour résilier votre abonnement envoyez un e-mail à l'adresse 
[email protected]

Répondre à