Foros del Web » Programando para Internet » Python »

Django Model, ForeignKey ubicación

Estas en el tema de Django Model, ForeignKey ubicación en el foro de Python en Foros del Web. Hola, tengo una duda, en cuanto a crear un modelo que contengo foreignkey, tenemos la opción de crear el field dentro del modelo o por ...
  #1 (permalink)  
Antiguo 14/01/2013, 21:35
 
Fecha de Ingreso: octubre-2011
Ubicación: conoceme y averigualo
Mensajes: 64
Antigüedad: 12 años, 5 meses
Puntos: 2
Django Model, ForeignKey ubicación

Hola, tengo una duda, en cuanto a crear un modelo que contengo foreignkey, tenemos la opción de crear el field dentro del modelo o por fuera, ejemplo:

Código Python:
Ver original
  1. class Cancion(models.Model):
  2.     titulo = models.CharField(max_length=100)
  3.     slug = models.SlugField()
  4.     imagen = models.CharField(max_length=100)
  5.  
  6. class Genero(models.Model):
  7.     cancion = models.ForeignKey(Cancion)
  8.     titulo = models.CharField(max_length=100)
  9.     slug = models.SlugField

Como vemos he optado por usar ForeignKey dentro de genero, pero tambien lo puedo hacer en Cancion, de la siguiente forma:

Código Python:
Ver original
  1. class Cancion(models.Model):
  2.     titulo = models.CharField(max_length=100)
  3.     slug = models.SlugField()
  4.     imagen = models.CharField(max_length=100)
  5.     genero = models.ForeignKey(Genero)
  6.  
  7. class Genero(models.Model):
  8.     titulo = models.CharField(max_length=100)
  9.     slug = models.SlugField

Lo que no entiendo cual es la mejor forma de hacerlo, como saber que modelo es mejor si el primero o el segundo.

Gracias.
  #2 (permalink)  
Antiguo 14/01/2013, 21:49
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 1 mes
Puntos: 1360
Respuesta: Django Model, ForeignKey ubicación

Un foreing key y una primary key es una relación One-To-Many.

Basado en lo anterior:

En tu primera opción una canción puede tener uno o mas géneros pero un genero solo tendrá una canción.

Mientras que en tu segunda opción un genero puede tener una o mas canciones, pero una canción solamente tendrá un genero.

En mi opinión tu relación debería ser Many-To-Many por que una canción puede tener varios generos y un genero puede tener varias canciones.
  #3 (permalink)  
Antiguo 18/01/2013, 21:18
Avatar de gildus  
Fecha de Ingreso: agosto-2003
Mensajes: 1.495
Antigüedad: 20 años, 8 meses
Puntos: 105
Respuesta: Django Model, ForeignKey ubicación

Yo voto por la segunda:

Una Musica solo es de un solo genero.

Saludos,
__________________
.: Gildus :.

Etiquetas: django
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:57.