Quick links: Content - sections - sub sections
EN FR
Quick Search Advanced search
 
Page

  [Opened] Créer la table à partir d'un JDao

Posted by Nico on 06/01/2008 12:05

Bonjour,

j'aimerais savoir si il est possible de créer automatiquement la table à partir d'un JDao ?

Merci pour vos réponses, Nico

  [Opened] Re: Créer la table à partir d'un JDao

Reply #1 Posted by laurentj on 06/01/2008 14:24

Salut,

non.

Personnellement, je ne suis pas partisan de ce genre de chose, car en général ça créer des tables non optimisés. Un exemple : il n'y a pas la notion d'index dans les daos, cela étant inutile. Donc il n'y aurait pas d'index créés sur les champs qui sont beaucoup utilisés en critère. Ou encore, dans un fichier dao, il n'est pas non plus indiqué les clés étrangères vers toutes les autres tables..

Autant donc d'abord créer le schema de la base de donnée au travers d'outils comme phpmyadmin ou des outils de modélisation, et ensuite générer automatiquement les daos. Et puis pour moi, pour avoir un schema de base de donnée robuste, cohérent et correspondant aux rêgles de gestion de l'application, il est préférable de le conçevoir avant de coder. Ça fit plus pro et plus propre quand même ;-)

  [Opened] Re: Créer la table à partir d'un JDao

Reply #2 Posted by laurentj on 06/01/2008 21:22

la conception se fait sur papier,

Je n'ai jamais dit le contraire. Le papier pouvant être remplacer par un traitement de texte, un outil de modélisation UML (qui permet de générer le SQL) etc..

chaque base de donnée semble avoir ça propre version du langage : donc c'est pas portable,

C'est bien pourquoi il vaut mieux faire le schema de base de donnée avant d'écrire le code ! Pour profiter au mieux des possibilités de la base de données, comme par exemple utiliser des procédures stockées, triggers et cie, ce qui fait du code en moins à écrire coté PHP. Et ce genre de truc, c'est pas un générateur comme rails ou autre qui vont te le faire.

puisque jelix sait générer du sql pour interroger une table spécifiquement pour une base paticulière, il n'y a pas de raison de fond pour que jelix ne connaisse la syntaxe de création d'un table spécifiquement pour chaque base (e.g mysql, sqlite, ...)

Comme je l'ai dit, les informations stockées dans les daos sont largement insuffisante pour créer une base propre et optimisée.

le dao semble pouvoir faire appel à plusieurs tables, donc le xml correspondant pourrait également être étendu pour ajouter un peu plus de sémantique sur les champs,

Donc au final, tu va écrire autant de choses que si tu écrivais du SQL, et même plus que si tu utilisais un phpmyadmin ou un outil de modélisation. Pour des infos en plus qui seraient inutiles pour le fonctionnement propre aux daos. Bref, autant travailler directement sur la base de données ;-)

Cependant, je n'ai que très peu d'expérience sur les BD,

Je crois que tout est dit ;-)

C'est malheureusement le cas de beaucoup de développeurs web. Modélisation, MCD, MPD, UML, Merise, Procédures stockées, Triggers, index, contraintes d'intégrités, clés étrangères, tunning etc, sont des termes pas toujours bien connus et peu utilisés. La faute aussi peut être à Mysql qui a longtemps été la base de donnée du "pauvre", avec peu de fonctionnalité avançée (qui ne commencent à arriver seulement avec la v5).

la lecture d'un livre sur "Ruby on Rails" serait tres instructive à tout concepteur de Framework : il y a des tas d'idées à piquer...

ça se pourrait, mais Ruby a des possibilités que n'a pas PHP (et vice versa), et donc certaines idées ne sont pas forcément bonne à appliquer. Et puis c'est pas comme si je ne développais pas de frameworks depuis 7ans ;-) (et que je ne faisais pas de la modélisation de base de donnée depuis plus de 10 ans).

Toutefois, jDao n'est pas parfait et j'ai beaucoup d'idée pour l'améliorer. Mais je n'en ferais pas un truc à générer une BD. La modélisation (et donc la création de la base de donnée) vient AVANT le code.

 
Page
  1. Créer la table à partir d'un JDao