Modelisation base de donnée

Mammouth du PHP | 1311 Messages

23 janv. 2006, 19:14

salut
je voudrai savoir si il est recommandé de mettre une clé primaire sur les tables ACTION_has_module et USER_has_groupe

et est ce que la modelisation vous semble correct car je me plante souvent avec les relation 1 à n et m à n :?

Image

merci

Administrateur PHPfrance
Administrateur PHPfrance | 3088 Messages

23 janv. 2006, 22:10

Je ne suis pas un pro de la modélisation, même si j'aime lire des papiers à ce sujet, mais je pense que la théorie voudrait que oui.

Mais ce n'est pas la théorie qui va faire fonctionner ton application alors je vais aussi te le conseiller d'un point de vue purement technique. Si tu utilises MySQL, étudie les EXPLAIN des requêtes concernant ces tables et tu devrais voir certaines jointures "ref" devenir "eq_ref" et les performances s'améliorer proportionnellement à la taille du résultat généré. Sous PostgreSQL, je pense que des "nested join" deviendront des "hash join" avec une petite amélioration des performances, mais cela reste entièrement à démontrer.

Ce n'est que mon avis, mais si tu n'as pas un très gros ratio INSERT:SELECT ou de gros problèmes de place sur le disque dur de la machin tu n'as aucune raison de ne pas ajouter de clés primaires à tes tables.

HTH

Administrateur PHPfrance
Administrateur PHPfrance | 11457 Messages

23 janv. 2006, 23:50

Ces tables semblent fort découler d'associations.
En soi, il n'y a aucune obligation de leur attribuer une clé primaire.
(Les index, eux, sont indispensables !)

Cependant, j'ai pris pour habitude de définir un entier auto-incrémenté
comme clé primaire de toutes mes tables.

Personnellement, j'en mettrais.

Mammouth du PHP | 1311 Messages

24 janv. 2006, 11:01

pour tous dire moi aussi j'ai bien envie de mettre une clé primaire.
j'utilise db designer (je l'ai pas trop en main) et pas possible de mettre une cle primaire sur les table créé par une relation m:n :evil:

autre point : quand faire appel a une procedure stockée??

Administrateur PHPfrance
Administrateur PHPfrance | 11457 Messages

24 janv. 2006, 11:18

quand faire appel a une procedure stockée??
quand tu utilises très souvent une même requête !

Mammouth du PHP | 1311 Messages

24 janv. 2006, 11:22

quand tu utilises très souvent une même requête !
je pose la question a tous hazard (mes tables ne sont pas prette sinon j'aurai fais les tests)
connaissez vous des benchs entre prcedure stocké et les requetes compliées de PDO