> Malgré ce qu'on veut faire croire, le monde du code et de l'Orienté Objet
est différent du monde de la BDD et des Entités Relations (ne vous méprenez
pas, je trouve ça super qu'on fasse un ActiveRecord qui simplifie les
correspondances).

Clairement. Les BDD relationnelles, ca n'a jamais été inventé dans l'idée
de coupler ca avec de l'objet. Ca satisfait à l'algèbre relationnelle qui
se rapproche beaucoup de la théorie des ensembles.
Il se trouve qu'une partie de la conception objet possède une dimension
relationnelle ce qui permet, plus ou moins facilement, de traduire le data
relationnel en objets (grace aux orm justement).
Cependant, c'est clair et net que les bdd imposent des contraintes
techniques souvent très pénibles et limitantes au niveau code. A l'inverse,
le modèle objet induit des "désoptimisations" terribles au niveau sgbd, et
ce malgré tous les efforts fait par les concepteurs d'orm.

Faut faire avec et l'expérience permet de repérer les cas ou il va falloir
"bypass" l'orm ou dénormaliser ton modèle physique pour éviter les
catastrophes (du genre utiliser un "insert from select" au lieu de boucler
dans ton code, ou de cacher des n,n dans un tableau d'id serialisé).
Heureusement, avec un orm bien foutu comme AR (ou d'autres hein), ca rend
les choses beaucoup moins compliquées (pas comme avec propel par exemple
:p).


Le 29 janvier 2013 10:20, Nima Izadi <[email protected]> a écrit :

> J'ai écris un article sur le STI si ça peut aider :
> http://ontherailsagain.com/articles/single-table-inheritance ;)
>
> --
> Nima Izadi
> Sent with Sparrow <http://www.sparrowmailapp.com/?sig>
>
> On Tuesday, January 29, 2013 at 10:18 AM, Sylvain Abélard wrote:
>
> Jai aussi pensé a une class AdDetails, et AdRealEstateDetail qui
> hériterait delle, mais ce n'est pas possible avec les rails que toutes les
> sous-classes se partageront la même table
>
>
> Et bien en fait si c'est possible avec la STI, Single-Table Inheritance.
> Ce serait plutôt AdRealEstate < Ad par contre.
>
> Je t'avoue que ça fait un sacré bout de temps que je ne me suis pas penché
> là-dessus...
> Alors du coup je n'ai pas mieux à t'offrir que ça :/
> http://www.google.com/search?q=rails+3+sti
>
> Quelqu'un at-il une solution pour ce genre de problème?
>
>
>
> donc j'ai pensé au polymorphisme, mais polymorphisme signifie aussi que je
> dois ajouter une référence à ma table "ads" vers les tables détail, et
> supprimer ad_id des tables detail, ce que je pense est un non-sens car
> certaines annonces peuvent ne pas avoir de détails, mais les détails sont
> des non-sens sans leur annonce.
>
>
> Ben, sans vouloir être méchant ou faire de l'argument d'autorité...
> Malgré ce qu'on veut faire croire, le monde du code et de l'Orienté Objet
> est différent du monde de la BDD et des Entités Relations (ne vous méprenez
> pas, je trouve ça super qu'on fasse un ActiveRecord qui simplifie les
> correspondances).
>
> Et là encore, tu découvriras des mondes totalement différents si tu as la
> chance de bosser avec un DBA senior, un expert en perf BDD, un
> tuneur-fou... ou de nombreuses personnes sur cette liste qui sont fans du
> NoSQL (plus personne parle de schemaless, c'est passé de mode ?). Le
> "non-sens" s'efface alors devant des astuces parfois surprenantes mais
> redoutablement efficaces :)
>
> Dans le monde de l'OO, par contre, il suffit de réunir une poignée de
> développeurs pour avoir autant de définitions différentes de polymorphisme.
> Parlons plutôt d'héritage, sur ce coup-là. Et encore :)
>
> Bon courage et à plus,
>
> --
> --
> 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]
> ---
> Vous recevez ce message, car vous êtes abonné au groupe Google
> Groupes Railsfrance.
> Pour vous désabonner de ce groupe et ne plus recevoir d'e-mails le
> concernant, envoyez un e-mail à l'adresse
> [email protected].
> Pour plus d'options, visitez le site
> https://groups.google.com/groups/opt_out .
>
>
>
>
>  --
> --
> 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]
> ---
> Vous recevez ce message, car vous êtes abonné au groupe Google
> Groupes Railsfrance.
> Pour vous désabonner de ce groupe et ne plus recevoir d'e-mails le
> concernant, envoyez un e-mail à l'adresse
> [email protected].
> Pour plus d'options, visitez le site
> https://groups.google.com/groups/opt_out .
>
>
>

-- 
-- 
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]
--- 
Vous recevez ce message, car vous êtes abonné au groupe Google Groupes 
Railsfrance.
Pour vous désabonner de ce groupe et ne plus recevoir d'e-mails le concernant, 
envoyez un e-mail à l'adresse [email protected].
Pour plus d'options, visitez le site https://groups.google.com/groups/opt_out .


Répondre à