Page 1 sur 1

diagramme de classes : définir id => primary key ?

MessagePublié: Lun 17 Mai 2010, 12:40
par yarfu
Re bonjour, ^^

Cette question s'apparente a mon autre question mais j'ai préféré les séparer pour plus de clarté pour d'éventuels lecteurs.

J'essaie actuellement Enterprise Architect, pour developper un site web en php + mysql.

J'ai une classe Theme qui continent 2 attributs : id, name.
J'ai mis dans le diagramme de classes le stéréotype "id" sur l'attribut id, or quand je transforme la classe en "DDL" E.A. n'utilises pas id comme primary mais génères un attribut ThemeId qui n'existes donc pas coté code php.

J'aurais aimé faire quelque chose du genre :$id = $theme->getId();

Je ne sais comment fonctionne le java a ce stade, mais pour un site web php on manipules souvent les id et on as donc besoins de propriétés pour y acceder...

Est-ce mon architecture qui est a revoir où y as t-il une option que j'ai raté ?

Re: diagramme de classes : définir id => primary key ?

MessagePublié: Mar 18 Mai 2010, 09:44
par Yves
Bonjour,

la génération de Primary Key est effectuée dans le template Class du transformateur DDL à partir du nom de la classe suivi de ID. Si tu veux changer cette génération tu dois modifier les templates existants. Dans ce cas le mieux est de supprimer la génération de classe du template Class et de l'ajouter dans le template Attribute si tu veux générer la PK à partir d'un attribut. Sinon si tu c'est juste le nom de la PK qui t'ennuie tu peux la garder dans le template Class et modifier la règle de nommage. Dans ce cas tu ne dois pas définir d'attribut id dans ta classe source.

Re: diagramme de classes : définir id => primary key ?

MessagePublié: Mar 18 Mai 2010, 14:50
par yarfu
J'aurais aimé ne pas trop m'éloigner du comportement par défaut.

Je ne comprends pas :
1 - Comment font les Java-istes en l'état pour accéder a l'id d'un objet si il n'y a aucune propriété getId() / getTableId() dans la classe ?
2 - Comment activer l'auto_increment ( nommé autoNum par EA) dans le diagramme de classes sur un TableId qui n'existe pas encore ?