ForeignKey ou ManyToManyField

a marqué ce sujet comme résolu.

Salut,

Je me pose souvent cette question à laquelle je n’ai jamais trouvé de réponse :

Prenons un exemple simple. Avec les modèles Auteur et Livre, où un livre ne peut pas avoir plusieurs auteurs.

Vaut-il mieux définir un champ :

  • auteur=ForeignKey(Auteur) dans Livre ou
  • livres=ManyToManyField(Livre) dans Auteur

Dans un cas, on ajoute une clef étrangère dans la table Livre, dans l’autre, on crée une table supplémentaire qui adjoint chaque auteur à ses livres.

Mais concrètement, quels avantages il y a à utiliser une méthode ou l’autre ?

Pourquoi utiliser 3 tables quand 2 suffisent ? Je ne vois aucun bénéfice à avoir cette table supplémentaire.

Mais soyons clair, dans la table livres, la ForeignKey contient un IdAuteur (identifiant numérique séquentiel), pas le nom de l’auteur lui-même.

Si tu veux que ton modèle soit évolutif, si tu es convaincu qu’un jour, on va te demander de gérer les cas où un livre a plusieurs auteurs, alors ok pour la 3ème table

Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte