Project

General

Profile

Évolution #323

ORM

Added by vincent.mbg over 10 years ago. Updated almost 10 years ago.

Status:
Résolu
Priority:
Normal
Assignee:
Start date:
11/27/2009
Due date:
% Done:

100%

Estimated time:
Spent time:

Description

Concevoir un module pour la création d'un ORM à partir d'une base de données.

ormdd.py (7.39 KB) ormdd.py ORM dédié vincent.mbg, 12/25/2009 07:02 PM

History

#1 Updated by vincent.mbg over 10 years ago

  • Status changed from Nouveau to Assigné
  • Assignee set to vincent.mbg
  • % Done changed from 0 to 30

Voici la philosophie de l'ORM :

Chaque fois qu'un objet est instancié, cela provoque son inscription dans la table correspondante

ex :
f1 = Fleure( 1, 'rose' ) --> insert into Fleure values( 1, 'rose' )

Chaque classe aura une méthode statique 'get' permettant de récupérer un ou plusieurs objets instanciés auparavant

ex :
f1 = Fleure.get( id = 1 ) --> select * from Fleure where id = 1

Chaque objet aura une méthode destroy(). Cette méthode provoque la suppression de l'instance dans la table associée, après l'appelle de la méthode destroy(), l'objet devien inutilisable.

ex :
f1.destroy() --> delete from Fleure where id = 1
f1.get_id() --> erreur, cet objet est détruit

Au niveau de l'accès des attributs :
Dans tous les cas, un accès aux attributs d'un objet provoque une mise à jour de la table correspondante

ex :
f1.couleur = 'rouge' --> update Fleure set couleur = rouge where id = 1
f2.set_couleur( 'rouge' ) --> update Fleure set couleur = rouge where id =
1

Il faudra proposer deux modes, un mode ou l'accès aux attributs est privé et un mode ou l'accès est public.

Développement :

Dans un premier temps un ORM dédié à la BDD suivante sera créé.

lorsqu'il sera pleinement fonctionnelle, il faudra crée le programme qui créera la source de L'ORM en fonction de la BDD.

#2 Updated by vincent.mbg over 10 years ago

  • File ormdd.py added

Voici la BDD sur laquelle est construite l'ORM dédié.

  1. CREATE TABLE terrasse(
  2. id INTEGER PRIMARY KEY,
  3. orientation TEXT)
  1. CREATE TABLE fleure(
  2. id INTEGER PRIMARY KEY,
  3. couleur TEXT,
  4. id_terrasse INTEGER REFERENCES terrasse( id ))

La classe dédié à la table fleure est fini. Reste à faire la table terrasse ainsi que les contraintes d'intégrités référentielles.

#3 Updated by vincent.mbg over 10 years ago

  • File ormdd.py added
  • % Done changed from 30 to 50

Pour la méthode destroy, un argument cascade permet la destruction en cascade si l'argument est à True

#4 Updated by vincent.mbg over 10 years ago

  • File deleted (ormdd.py)

#5 Updated by vincent.mbg over 10 years ago

Conception revue + correction de bugs. + test

#6 Updated by vincent.mbg over 10 years ago

  • File deleted (ormdd.py)

#7 Updated by vincent.mbg over 10 years ago

  • % Done changed from 50 to 70

#8 Updated by vincent.mbg over 10 years ago

  • Status changed from Assigné to Résolu
  • % Done changed from 70 to 100

#9 Updated by vincent.mbg over 10 years ago

  • Project changed from MBG SQLite to Ohraimeur

Also available in: Atom PDF