• [^] # Re: Performance

    Posté par (site web personnel) . En réponse au journal Moi, expert C++, j'abandonne le C++. Évalué à 3.

    Dans le code principal.
    Avec un ORM, on aura donc une équivalence classe <=> table SQL, et instance <=> ligne de la table.

    >>> class A:
    >>> owner_type_id = CharField("module.class") # ou tout autre identifiant de classe ORM
    >>> owner_id = IntegerField() # clef primaire de l'objet en question
    >>> 
    >>> def owner(self):
    >>> return self.owner_type_id.get_by_id(self.owner_id) 
    >>> owner_1 = B() # instance quelconque de l'ORM
    >>> instance = A(owner_type_id=owner_1.__class__, owner_id=owner_1.id)
    >>> instance.owner == owner_1
    True

    La classe B (ou C, D, ...) n'a à aucun moment besoin d'être connu du code de A, ce qui est bien pratique s'ils sont dans des plugins codés par d'autres entités.