En su momento me plantee el crear un dominio con idred, pero MySQL no permite crear dominios ^^U,
Haber yo podria por un lado añadir la idred como atributos a la relacion reserva y de tal manera que quedara:
Código SQL:
Ver originalCREATE TABLE reserva
(
idusuario tinyint UNSIGNED NOT NULL UNIQUE,
idturno tinyint UNSIGNED NOT NULL,
idred tinyint UNSIGNED NOT NULL,
PRIMARY KEY (idusuario),
FOREIGN KEY (idusuario) REFERENCES usuario (idusuario) ON DELETE CASCADE ON UPDATE CASCADE,
FOREIGN KEY (idturno) REFERENCES turno (idturno) ON DELETE CASCADE ON UPDATE CASCADE
UNIQUE INDEX (idturno,idred)
)ENGINE=InnoDB;
La cuestión es que tengo otra relación (que se me olvido mencionar) entre usuario y red que es activo, es decir una tabla tal que así:
Código SQL:
Ver originalCREATE TABLE activo
(
idusuario tinyint UNSIGNED NOT NULL UNIQUE,
idred tinyint UNSIGNED NOT NULL UNIQUE,
inicio datetime NOT NULL,
PRIMARY KEY (idusuario,idred),
FOREIGN KEY (idusuario) REFERENCES usuario (idusuario) ON DELETE CASCADE ON UPDATE CASCADE,
FOREIGN KEY (idred) REFERENCES red (idred) ON DELETE CASCADE ON UPDATE CASCADE
)ENGINE=InnoDB;
donde almaceno (y puedo comprobar mas tarde) si una red se encuentra acutalmente en uso, y en caso afimativo, que usuario esta en ella y desde cuando.
En esta tabla podria hacer lo mismo y pasar idred como atributo de la relación. La cuestión es que la cosa no me queda clara del todo ya que al eliminar red como entidad esta relación queda un poco descolgada (no se si me explico). Ademas idred aquí y en la otra tabla referencian lo mismo, pero sin una tabla red no tengo manera de relacionarlas ¿no?
Quizas combinar las tablas red y activo sea otra opción, pero de hacer eso la tabla resultante ¿seguiria estando en 3FN?, ademas como la red no esta siempre en uso el atributo datetime no siempre tiene sentido en la tabla.
Nose, ¿que hariais vosotros?
P.D.: El interes en tener la base de datos normalizada no es cosa mia, sino que todo esto forma parte de un PFC y el tutor asi lo ha querido, entoces o estan totalmente normalizadas o encuentro una explicació bonita y convicenten que poder plantar en la memoria ^^U