Diferencia entre revisiones de «Como Crear Relacion 1:N KumbiaPHP Framework»

De KumbiaPHP Framework Wiki
Línea 38: Línea 38:
 
         //Relaciones
 
         //Relaciones
 
         //Un profesional tiene una especialidad
 
         //Un profesional tiene una especialidad
         $this->belongs_to('especialidades');
+
         $this->belongs_to('especialidad');
 
     }
 
     }
 
}
 
}
Línea 51: Línea 51:
 
     }
 
     }
 
}
 
}
 +
 +
==La Consulta==

Revisión del 16:23 22 sep 2009

Aquí Breve explicación...

Estructura de las Tablas

CREATE TABLE `profesionales` (
  `id` INTEGER(11) NOT NULL AUTO_INCREMENT,
  `apellido` VARCHAR(45) COLLATE utf8_spanish_ci NOT NULL DEFAULT '',
  `nombre` VARCHAR(45) COLLATE utf8_spanish_ci NOT NULL DEFAULT '',
)ENGINE=InnoDB


CREATE TABLE `especialidades` (
  `id` INTEGER(11) NOT NULL AUTO_INCREMENT,
  `nombre` VARCHAR(45) COLLATE utf8_general_ci NOT NULL DEFAULT '',
  `profesionales_id` INTEGER(11) NOT NULL,
)ENGINE=InnoDB

Descripcion del Modelo

El mnodelo esta compuesto por dos tablas: Profesionales y Especialidades, la tabla 'profesionales' esta diseñada para llevara los datos de todos los profesionales de una empresa interdisciplinaria, estos profesionales pueden ser: medicos, abogados, ingenieros, etc. La tabla 'especialidades' hace referencia a las distintas orientaciones dentro la profesion , por ejemplo:

Profesion: Medico || especialidad: clinico, cardiologo, oftalmologo, etc.
Profesion: Ingeniero || especialidad: civil, sistemas, contrucciones, electronicos, etc.


Las tablas estan creadas en mysql , y estan relacionadas por el campo 'id'.

Relacion tablas.png

El Modelo

class Profesionales extends ActiveRecord {

   public function initialize()
   {
       //Relaciones
       //Un profesional tiene una especialidad
       $this->belongs_to('especialidad');
   }

}

class Especialidades extends ActiveRecord {

   public function initialize()
   {
       //Relaciones
       //Un especialidad tiene muchos profesionales
       $this->has_many('profesionales');
   }

}

La Consulta