¿Cuál es la diferencia entre OneToOneFIeld y ForeignKey?

Hector F

Hector F

Pregunta
studenthace 5 años

¿Cuál es la diferencia entre OneToOneFIeld y ForeignKey?

3 respuestas
para escribir tu comentario
    Gonzalo García

    Gonzalo García

    studenthace 5 años

    ForeignKey es de relación uno a muchos, mientras que OneToOneField es de relación uno a uno. También está ManyToMany, que como seguro adivinaste es muchos a muchos.

    Siguiendo el ejemplo de Jandro, la relación muchos a muchos se podría ver en las comidas del menú de un restaurante y sus ingredientes (un ingrediente puede estar en varias comidas, y una comida puede tener varios ingredientes).

    Hector F

    Hector F

    studenthace 5 años

    Sí. ¡Gracias!

    Carlos Alejandro Hernández Mejía

    Carlos Alejandro Hernández Mejía

    studenthace 5 años

    Una relación del tipo OneToOneField, representa una relación uno a uno, y una ForeignKey representa una relación uno a muchos.

    Por ejemplo, vos podés tener 3 modelos, un modelo Restaurante, uno Lugar y un modelo Camarero. La relación uno a uno se leería así: Un restaurante está ubicado en un lugar, la relación OneToOneField estaría ubicada en el modelos Restaurante, porque un restaurante no puede estar en muchos lugares (a menos que sea una franquicia, pero finjamos que hablamos de un restaurante pequeño). La relación uno a muchos, estaría representada por el hecho que en un Restaurante trabajan muchos camareros, aquí te podría surgir la duda de dónde poner la referencia (ForeignKey), en este caso, la llave foránea tendría que ir en el modelo que posee el "muchos", por lo cual, el modelo Camarero tendría la referencia al Restaurante donde este trabaja.

    Espero haberte ayudado.

Curso Avanzado de Django

Curso Avanzado de Django

Sitios increíbles como Platzi, Instagram, Pinterest o el portal del New York Times tienen algo en común: todos usan Django. Aprovecha su versatilidad, potencia y rapidez para mostrar tus ideas y dar rienda suelta a tu creatividad. Aprende Django con Platzi y ¡haz de tu próximo sitio web el mejor que el mundo haya visto!

Curso Avanzado de Django

Curso Avanzado de Django

Sitios increíbles como Platzi, Instagram, Pinterest o el portal del New York Times tienen algo en común: todos usan Django. Aprovecha su versatilidad, potencia y rapidez para mostrar tus ideas y dar rienda suelta a tu creatividad. Aprende Django con Platzi y ¡haz de tu próximo sitio web el mejor que el mundo haya visto!