Forum: Rails-ES Relacionar varias tablas segun mi modelo de base de datos

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
428db1f40290e08951cb15de3e85a595?d=identicon&s=25 Antonio Ortiz (antonio_ortiz)
on 2009-04-28 00:10
Hola,

Esta ves estoy trabjando sobre mi modelo de base de datos, pero no se
como hacer las primary keys y las foreign key,

Por ejemplo: tengo una tabla profesor, estudiantes, materias

Un profesor tiene muchos estudiantes y un estudiante tiene muchas
materias.

Necesito por favor que me ayuden en como relacionar esas tablas...

GRACIAS...
5c15703984caa012845b3cea129da936?d=identicon&s=25 Manuel González Noriega (Guest)
on 2009-04-28 01:04
(Received via mailing list)
2009/4/28 Antonio Ortiz <ruby-forum-incoming@andreas-s.net>

> Hola,
>
> Esta ves estoy trabjando sobre mi modelo de base de datos, pero no se
> como hacer las primary keys y las foreign key,
>


Hola Antonio,

como recordamos a menudo, esta información tan básica está repetida
hasta la
saciedad en los materiales de introducción a Rails, libros y tutoriales
online, por lo que evitamos volver a tratarla en la lista. Consulta
cualquier libro de iniciación como el Agile Web Development with Rails o
cualquier tutorial.
3bad218882602f4c35ea15adb3e5d5a4?d=identicon&s=25 Fernando Calatayud (fernan2)
on 2009-04-28 19:01
Antonio Ortiz wrote:
> Hola,
>
> Esta ves estoy trabjando sobre mi modelo de base de datos, pero no se
> como hacer las primary keys y las foreign key,
>

Las primary keys van automáticamente sobre el campo ID, y las foreign
key... es algo que a nivel de BBDD no se suele usar en Rails, cosa con
la que yo personalmente no estoy de acuerdo. Yo uso un plugin que se
llama foreign_key_migrations
http://agilewebdevelopment.com/plugins/foreign_key...
que te genera automáticamente las foreign keys, siempre que uses las
convenciones adecuadas: materia_id, profesor_id, etc. Si te saltas las
convenciones y quieres usar una foreign key con otro nombre de campo, o
quieres que un campo que parece foreign key no lo sea, tendrás que
especificarlo a mano:
      t.integer :parent_id, :references => :contenidos
      t.string :participacion_id, :references => nil

Eso sí: ojo con este plugin, que afecta bastante al rendimiento.
Instálalo sólo en el entorno de desarrollo, no en el de producción
(donde por otra parte no serviría para nada). Y no olvides que
foreign_key_migrations requiere tener instalado el plugin
redhillonrails_core.

s2
9b3b1fd6baa8379638d8399ecd60045d?d=identicon&s=25 Emili Parreño (emili)
on 2009-04-28 23:23
(Received via mailing list)
Solo por curiosidad, para que lo quieres en desarrollo y no en
producción??

2009/4/28 Fernando Calatayud <ruby-forum-incoming@andreas-s.net>
3bad218882602f4c35ea15adb3e5d5a4?d=identicon&s=25 Fernando Calatayud (fernan2)
on 2009-04-29 00:54
Emili Parreño wrote:
> Solo por curiosidad, para que lo quieres en desarrollo y no en
> producción??
>
> 2009/4/28 Fernando Calatayud <ruby-forum-incoming@andreas-s.net>


El plugin genera las foreign keys al hacer el rake db:migrate para crear
las tablas, y esto se hace (al menos yo) en tu máquina de desarrollo, no
en el servidor... ¿no?

s2
90ea347c45cdfbc1c5767dd6304d9c10?d=identicon&s=25 Borja Martín (Guest)
on 2009-04-29 01:05
(Received via mailing list)
¿y en el servidor cómo creas las tablas?

2009/4/29 Fernando Calatayud <ruby-forum-incoming@andreas-s.net>
9b3b1fd6baa8379638d8399ecd60045d?d=identicon&s=25 Emili Parreño (emili)
on 2009-04-29 09:24
(Received via mailing list)
el rake db:migrate se hace en cualquier entorno de trabajo, sino para
que
quieres las migraciones? solo para ejecutarlas en desarrollo? Cuando
haces
un deploy a produccion y hay nuevas migraciones como las aplicas?

2009/4/29 Borja Martín <borjam@dagi3d.net>
3bad218882602f4c35ea15adb3e5d5a4?d=identicon&s=25 Fernando Calatayud (fernan2)
on 2009-04-29 09:31
Emili Parreño wrote:
> el rake db:migrate se hace en cualquier entorno de trabajo, sino para
> que
> quieres las migraciones? solo para ejecutarlas en desarrollo? Cuando
> haces
> un deploy a produccion y hay nuevas migraciones como las aplicas?
>
> 2009/4/29 Borja Martín <borjam@dagi3d.net>

Yo lo hago desde mi máquina de desarrollo cambiando el entorno a
producción, y lanzando el rake desde mi máquina. Es decir, lo hago en
cualquier entorno de trabajo, pero no en cualquier máquina, por lo que
no hay necesidad (ni conveniencia) de instalar el plugin
foreign_key_migrations en el servidor...

s2
9b3b1fd6baa8379638d8399ecd60045d?d=identicon&s=25 Emili Parreño (emili)
on 2009-04-29 09:59
(Received via mailing list)
OK, no te entendí bien. Pensaba que creabas foreign keys solo en
desarrollo
pero no en producción, por eso me extrañaba.

2009/4/29 Fernando Calatayud <ruby-forum-incoming@andreas-s.net>
This topic is locked and can not be replied to.