12-12-2012, 07:25 PM
Normalement, chaque ligne doit être identifiable de façon unique, donc en règle générale, il faut une clef primaire de type "int" dans chaque table. Après, il peut y avoir des cas particuliers mais très souvent, c'est comme cela qu'on recommande de procéder. Non, seulement ca facilite la gestion de la BDD (l'id identifie la ligne de façon unique, donc on peut se fier à l'id pour manipuler les lignes), mais en plus, cela permet d'accélérer les requètes (si on connait l'id, demander au SQL de renvoyer LA ligne de cet id précis est rapide). Enfin, il faut définir une clef (unique au minimum, primaire au mieux) pour pouvoir utiliser les relations entre les tables (foreign keys).
Donc, oui, il faut un id à chaque ligne avec un index primaire dessus.
Pour les tables, y'a pas de règle générale... Faut juste qu'une table ne définisse qu'au plus un type d'objet (en un sens, 1 table = 1 class au plus). Mais là, d'autres me contrediront peut-être mais mon opinion est qu'il faut essayer de voir mles tables comme des classes d'objets.
Donc, oui, il faut un id à chaque ligne avec un index primaire dessus.
Pour les tables, y'a pas de règle générale... Faut juste qu'une table ne définisse qu'au plus un type d'objet (en un sens, 1 table = 1 class au plus). Mais là, d'autres me contrediront peut-être mais mon opinion est qu'il faut essayer de voir mles tables comme des classes d'objets.