Was ist der beste Weg, um so etwas in Django zu modellieren?Django Relation
class Book(models.Model):
name = models.CharField(max_length=100)
class Author(models.Model):
name = models.CharField(max_length=100)
book = models.ForeignKey(Book)
Dies führt zu einer OneToMany und eine ManyToOne Beziehung
2)
class Book(models.Model):
name = models.CharField(max_length=100)
author = models.OneToOneField("Author", related_name="author")
class Author(models.Model):
name = models.CharField(max_length=100)
book = models.ForeignKey(Book)
Dies führt zu einer OneToMany, ManyToOne, OneToOne Beziehung (mit einer Unescoary ManyToOne Beziehung)
3)
class Book(models.Model):
name = models.CharField(max_length=100)
author = models.OneToOneField("Author", related_name="+")
class Author(models.Model):
name = models.CharField(max_length=100)
book = models.ForeignKey(Book, related_name="+")
Dies ist der nächste, was ich will, aber gibt es einen besseren Weg?
€ dit: Autor -> Buch sollte 1 sein; *, nicht 0; * Aber für diese Frage nicht relevant
UPDATE:
die für mich gearbeitet:
class Book(models.Model):
name = models.CharField(max_length=100)
class Author(models.Model):
name = models.CharField(max_length=100)
books = models.ManyToManyField(Book, through="AuthorBook")
class AuthorBook(models.Model):
book = models.OneToOneField(Book)
author = models.ForeignKey(Author)
Sie
völlig abhängig von Ihren Anforderungen an die Anwendung haben – Charlesliam
Ihr Diagramm ist unklar. Die erste Option ist der richtige Weg, diese Beziehung zu modernisieren. Warum willst du ein extra eins zu eins? –
In Worten: Ein Buch hängt hat einen Autor (OneToOne) One, genauen Autor eine bis n Books (OneToMany) Die erste Lösung, die eine OneToMany Beziehung vom Autor Seite und eine ManyToOne Beziehung aus dem Buch Seite erstellt – Speedy