Ver Mensaje Individual
  #1 (permalink)  
Antiguo 08/07/2013, 15:36
colextey
Invitado
 
Mensajes: n/a
Puntos:
Django Modelo Adecuado

Hola chicos, quisiera hacerles una pregunta, tengo un sitio web en donde publico, películas, series y anime.

Actualmente tengo un modelo independiente para Películas, Series y Anime. Tengo una idea clara, pero no se si sea viable, por eso les escribiré el código y ustedes me dicen si esta bien o mal.

Tengo varias preguntas antes: Películas y Series comparten los mismos géneros, pero Anime los géneros son diferentes, y así mismo hay múltiples Fields que el tipo de entrada Películas, Series y Anime no comparten.

Código Python:
Ver original
  1. class Entry(models.Model):
  2.     type_entry = models.CharField(max_length=50, choices=TYPE_ENTRY)
  3.     title = models.CharField(max_length=100)
  4.     original_title = models.CharField(max_length=100, blank=True, null=True)
  5.     slug = models.SlugField(max_length=100)
  6.     content = HTMLField(blank=True)
  7.     genres_a = models.ManyToManyField(GenreA, blank=True, null=Tre)
  8.     genres_b = models.ManyToManyField(GenreB, blank=True, null=Tre)
  9.  
  10. # multiples trailers para una misma película, serie, anime.
  11. class Trailer(models.Model):
  12.     entry = models.ForeignKey(Entry)
  13.     trailer = models.TextField()
  14.     created_at = models.DateTimeField()

Lo otro que se me ocurre es algo así:

Código Python:
Ver original
  1. # Un modelo para juntar todo lo común.
  2. class Entry(models.Model):
  3.     type_entry = models.CharField(max_length=50, choices=TYPE_ENTRY)
  4.     title = models.CharField(max_length=100)
  5.     original_title = models.CharField(max_length=100)
  6.     slug = models.SlugField(max_length=100)
  7.     content = HTMLField(blank=True)
  8.  
  9. class EntryTypePelicula(models.Model):
  10.     entry = models.ForeignKey(Entry)
  11.     genres = models.ManyToManyField(GenreA, blank=True, null=Tre)
  12.  
  13. class EntryTypeSerie(models.Model):
  14.     entry = models.ForeignKey(Entry)
  15.     genres = models.ManyToManyField(GenreA, blank=True, null=Tre)
  16.  
  17. class EntryTypeAnime(models.Model):
  18.     entry = models.ForeignKey(Entry)
  19.     genres = models.ManyToManyField(GenreB, blank=True, null=Tre)
  20.  
  21. # multiples trailers para una misma película, serie, anime.
  22. class Trailer(models.Model):
  23.     entry = models.ForeignKey(Entry)
  24.     trailer = models.TextField()
  25.     created_at = models.DateTimeField()

Que opinan sea la mejor opción, gracias.