Pongo todos los datos de los que consta mi aplicación a ver si alguien me puede ayudar.
Voy a realizar una aplicación para el control de consumibles e impresoras. Esta va a tener las siguientes tablas :
http://img854.imageshack.us/img854/6394/20130404114013.jpg
Como se puede observar las tablas dibujadas a mano son tablas de reunión que me he hecho para poder relacionarlas entre sí a las tablas principales.
Tengo los siguientes modelos para cada una de mis tablas principales. Este es el código de cada modelo.
Tabla Deparatamento
class Departament extends DataMapper {
var $has_many = array('person','device');
function __construct($id = NULL)
{
parent::__construct($id);
}
}
Tabla Dispositivo
class Device extends DataMapper {
var $has_one = array('departament','provider','order');
var $has_many = array(
'element' => array(
'class' => 'element',
'other_field' => 'device',
'join_self_as' => 'device',
'join_other_as' => 'element',
'join_table' => 'devices_elements')
);
function __construct($id = NULL)
{
parent::__construct($id);
}
}
Tabla Elemento
class Element extends DataMapper {
var $has_one = array('provider','order');
var $has_many = array(
'device' => array(
'class' => 'device',
'other_field' => 'element',
'join_self_as' => 'element',
'join_other_as' => 'device',
'join_table' => 'devices_elements')
);
function __construct($id = NULL)
{
parent::__construct($id);
}
}
Tabla Compra
class Order extends DataMapper {
var $has_many = array('devices','elements');
function __construct($id = NULL)
{
parent::__construct($id);
}
}
Tabla Persona
class Person extends DataMapper {
var $has_one = array('departament');
function __construct($id = NULL)
{
parent::__construct($id);
}
}
Tabla Proveedor
class Provider extends DataMapper {
var $has_many = array('device','element');
function __construct($id = NULL)
{
parent::__construct($id);
}
}
Tengo en cada modelo validaciones pero las he quitado para no expandir esto más.
Bueno mi pregunta es:
¿Esta bien que para unir dos tablas me haga una tabla intermedia? Si es así, ¿Tengo que insertar los datos de esas tablas intermedias manualmente?
Otra pregunta:
¿He de crear foreign-keys?
Gracias y siento poner este tocho