Foros del Web » Programando para Internet » PHP » Frameworks y PHP orientado a objetos »

Relaciones entre objetos / tablas

Estas en el tema de Relaciones entre objetos / tablas en el foro de Frameworks y PHP orientado a objetos en Foros del Web. Hola a todos... estoy usando active record / active table hace ya bastante tiempo y me parece muy comodo, pero solo cuando tengo relaciones simples ...
  #1 (permalink)  
Antiguo 10/11/2008, 10:53
 
Fecha de Ingreso: diciembre-2004
Mensajes: 721
Antigüedad: 19 años, 4 meses
Puntos: 2
Pregunta Relaciones entre objetos / tablas

Hola a todos... estoy usando active record / active table hace ya bastante tiempo y me parece muy comodo, pero solo cuando tengo relaciones simples entre tablas ó relaciones de 1 a muchos.

Cuando la relacion es de muchos a muchos siempre termino "atandolo con alambre" para que funcione, por eso quisiera preguntarles qué me recomiendan para tales casos.

¿ORM? ¿Algun patron de diseño?

Lo que estoy buscando es algo liviano... no quiero implementar algo que requiera de varias clases y una decena de objetos para acceder a un campo en una tabla...

Muchas gracias!
  #2 (permalink)  
Antiguo 10/11/2008, 11:17
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Relaciones entre objetos / tablas

Mmmm pues yo creo usando active record puedes hacerlo simplemente implementas un getAll<record1>by<record2>, ve en Zend Framework como implementan ese tipo de funciones dinamicas.

Saludos.
  #3 (permalink)  
Antiguo 11/11/2008, 07:31
Avatar de alfredo13  
Fecha de Ingreso: agosto-2008
Ubicación: Rosario, Argentina
Mensajes: 8
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: Relaciones entre objetos / tablas

A lo mejor digo una burrada grande como una casa, pero según lo que recuerdo, cuando hay relaciones "muchas a muchas" se suele crear una tabla asociativa para dividir la relación en dos, siendo estas "una a muchas" con la tabal asociativa.

Por otra parte, soy bastante nuevo en esto de PHP orientado a objetos y todavía no me he puesto a relacionar objetos y tablas. En su momento busqué algo de información y encontré un par de páginas interesantes.
Te dejo una de ellas: http://www.ibm.com/developerworks/library/ws-mapping-to-rdb/
Claro que este tipo de artículos apuntan a algo más artesanal. No sé cómo lo resolverán los distintos frameworks del momento.

Saludos
  #4 (permalink)  
Antiguo 13/11/2008, 18:21
Avatar de portalmana  
Fecha de Ingreso: septiembre-2007
Ubicación: Montevideo-Uruguay
Mensajes: 633
Antigüedad: 16 años, 7 meses
Puntos: 80
Respuesta: Relaciones entre objetos / tablas

yo tambien tenia entendido lo que dice alfredo13, cuando tenemos en una tabla una relacion N a N se debe de crear otra donde tengamos N->1, bueno creo que una relacion N a N no es un correcto diseño de la base de datos.
Saludos
  #5 (permalink)  
Antiguo 10/12/2008, 09:28
 
Fecha de Ingreso: diciembre-2004
Mensajes: 721
Antigüedad: 19 años, 4 meses
Puntos: 2
Respuesta: Relaciones entre objetos / tablas

Hola. Perdon por la respuesta tan tardía... y gracias por las respuestas!

Lo de que las relaciones N a N no son correctas en cuestiones de diseño es la primera vez que lo escucho (pero no estoy diciendo que no pueda ser así, solo que me llama la atención). En la facultad de hecho me lo enseñaron sin decirme "Esto está mal desde el punto de vista del diseño, pero haganlo igual". Aunque en la facultad uno ve cada burrada tambien... :P

La verdad no queria terminar viendo como lo hace un framework... tal vez alguien sabia como explicarlo facilmente y bueh... bueno seguiré leyendo... gracias por las respuestas!
  #6 (permalink)  
Antiguo 10/12/2008, 10:32
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Relaciones entre objetos / tablas

Mmm tampoco he escuchado eso de que las relaciones n:n sean incorrectas, de hecho por algo existen y es para solucionar por ejemplo algo tan simple como una relacion multiple de opciones.

Saludos.
  #7 (permalink)  
Antiguo 23/02/2009, 12:27
 
Fecha de Ingreso: diciembre-2004
Mensajes: 721
Antigüedad: 19 años, 4 meses
Puntos: 2
Respuesta: Relaciones entre objetos / tablas

GatorV ¿que tal? Revivo este post por que despues de lidiar con el tema decidi que vale la pena revisar como lo hacen en el zend... el tema es que lo voy a bajar y empezar a ver desde cero el codigo... ¿sabes por donde puedo empezar a chusmear vos que lo conoces?

saludos!
  #8 (permalink)  
Antiguo 23/02/2009, 12:33
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Relaciones entre objetos / tablas

Puedes ver el objeto Zend/Db/Table/Row/Abstract.php.

Saludos
  #9 (permalink)  
Antiguo 25/02/2009, 18:37
Avatar de lisandro Arg  
Fecha de Ingreso: octubre-2003
Ubicación: Cordoba, Argentina
Mensajes: 945
Antigüedad: 20 años, 6 meses
Puntos: 24
Respuesta: Relaciones entre objetos / tablas

Me sorprende la duda que ha quedado de las relaciones muchos-a-muchos. No soy un experto pero recuerdo a una profesora decir que "las relaciones muchos-a-muchos no existen en una base de datos relacionales".
Si tenemos Alumnos y Cursos necesitamos si o si una tabla Alumnos_x_Cursos de lo contrario vamos a repetir datos innecesariamente al menos en una de las dos tablas
  #10 (permalink)  
Antiguo 25/02/2009, 19:35
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Relaciones entre objetos / tablas

Pues esa es la idea de una relación muchos a muchos, tener una tabla que guarde las relaciones...
  #11 (permalink)  
Antiguo 02/03/2009, 09:32
 
Fecha de Ingreso: diciembre-2004
Mensajes: 721
Antigüedad: 19 años, 4 meses
Puntos: 2
Respuesta: Relaciones entre objetos / tablas

Genial,, bajando el zend entonecsss

gracias :)
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.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 07:37.