]el problema le tengo en la tabla sesion usa aplicacion llevo horas dad le vueltas y no se por que es segire intentandolo para dar con ello pero una ayuda no me vendria mal puesto que llevo horas y ya no oaro de ver lo mismo jejeje
- Crear las siguientes tablas con las restricciones oportunas:
USUARIO(Cod,Nombre, Direccion, Tlfno, login, password, email)
SESION(Nº, Id_Terminal, Fecha, horacom,horafin,CodUsuario)
Id_Terminal clave foranea de Terminal Cod_Usuario clave foranea de Usuario
APLICACION (Nombre,Versión, fecha expiración)
DISCODURO(IdOrdenador,NºDisco, tipo, tamaño) Id_Ordenador clave foranea de Ordenador
SERVICIO ( Id_Servidor, NombreServicio, fecha) Id_Servidor clave foranea de Servidor
ORDENADOR (Id_Ordenador, Nombre, memoria, procesador)
TERMINAL(Id_Terminal) Id_Terminal clave foranea de Id_Ordenador
SERVIDOR(Id_Servidor) Id_Servidor clave foranea de Id_Ordenador
SesionUsaAplicación(Nºsesion,Id_Terminal,NombreAplicacion,VersionApli)
NºSesion,Id_Terminal clave foranea de Sesion NombreAplicacion,VersionApli clave foranea de Aplicacion
AplicacionInstaladaTerminal(Id_Terminal, NombreApli, VersionApli, Fecha)
Id_Terminal clave foranea de Terminal NomrbreApli,VersionApli clave foranea de Aplicación
AplicacionDependeAplicacion(NApli,VerApli,Naplidep,VerApliden) NApli,VerApli clave foranea de Aplicación Naplidep,VerApliden clave foranea de Aplicación
AplicacionRequiereServicio(NApli,VerApli,Id_Servidor,NombreServicio) NApli,VerApli clave foranea de Aplicación Servidor,NombreServicio clave foranea de Servicio*/
-- desactiva las claves foraneas
set foreign_key_checks=off;
-- borro la base de datos
drop database if exists ejercicio3;
-- creo la base de datos
create database ejercicio3;
-- selecciono la base de datos
use ejercicio3;
-- creo la tabla usuario
create table usuario(
cod int unsigned primary key,
nombre varchar(20),
telefono int unsigned not null,
login varchar(20) not null,
password varchar (10) not null,
email varchar(10) not null
);
create table sesion(
numero int unsigned not null,
id_terminal int unsigned not null,
fecha date not null,
hora_com time not null,
hora_fin time not null,
cod_usuario int unsigned not null,
constraint pk_sesion primary key(numero,id_terminal),
constraint fk1_sesion foreign key (id_terminal) references terminal(id_terminal) on delete cascade on update cascade,
constraint fk2_sesion foreign key (cod_usuario) references usuario(cod)
);
create table aplicacion (
nombre varchar(20) not null,
version varchar(5) not null,
fecha_expiracion date,
constraint pk_aplicacion primary key(nombre,version));
-- DISCODURO(IdOrdenador,NºDisco, tipo, tamaño) Id_Ordenador clave foranea de Ordenador
create table disco_duro(
id_ordenador int unsigned not null,
n_disco int unsigned not null,
tipo varchar(10),
tamaño varchar(10),
constraint pk_disco_duro primary key(id_ordenador,n_disco),
constraint fk1_disco_duro foreign key (id_ordenador) references ordenador(id_ordenador) on delete cascade on update cascade
);
-- SERVICIO ( Id_Servidor, NombreServicio, fecha) Id_Servidor clave foranea de Servidor
create table servicio(
id_servidor int unsigned not null,
nombreservicio varchar(10) not null,
fecha date not null,
constraint pk_servicio primary key(id_servidor,nombreservicio),
constraint fk1_servicio foreign key (id_servidor) references servidor(id_servidor) on delete cascade on update cascade
);
-- ORDENADOR (Id_Ordenador, Nombre, memoria, procesador)
create table ordenador(
id_ordenador int unsigned primary key,
nombre varchar(10) not null,
memoria varchar(10),
procesador varchar (10) not null
);
-- TERMINAL(Id_Terminal) Id_Terminal clave foranea de Id_Ordenador
create table terminal (
id_terminal int unsigned primary key,
constraint fk_terminal foreign key (id_terminal) references ordenador(id_ordenador) on delete cascade on update cascade
);
-- SERVIDOR(Id_Servidor) Id_Servidor clave foranea de Id_Ordenador
create table servidor (
id_servidor int unsigned primary key,
constraint fk_servidor foreign key (id_servidor) references ordenador(id_ordenador) on delete cascade on update cascade
);
-- SesionUsaAplicación(Nºsesion,Id_Terminal,NombreAplicacion,VersionApli) NºSesion,Id_Terminal clave foranea de Sesion NombreAplicacion,VersionApli clave foranea de Aplicacion
create table sesion_usa_aplicacion(
num_sesion int unsigned not null,
id_terminal int unsigned not null,
nombre_apli varchar(20) not null,
version_apli varchar (5) not null,
constraint pk_sesion_usa_aplicacion primary key(num_sesion,id_terminal,nombre_apli,version_apli),
constraint fk1_sesion_usa_aplicacion foreign key (num_sesion) references sesion(numero),
constraint fk2_sesion_usa_aplicacion foreign key (id_terminal) references sesion(id_terminal),
constraint fk3_sesion_usa_aplicacion foreign key (nombre_apli) references aplicacion(nombre) ,
constraint fk4_sesion_usa_aplicacion foreign key (version_apli) references aplicacion(version)
);
-- AplicacionInstaladaTerminal(Id_Terminal, NombreApli, VersionApli, Fecha) Id_Terminal clave foranea de Terminal NomrbreApli,VersionApli clave foranea de Aplicación
create table aplicacion_instalada_terminal(
id_terminal int unsigned not null,
nombre_apli varchar(20) not null,
version_apli varchar (5) not null,
fecha date not null,
constraint pk_aplicacion_instalada_terminal primary key(id_terminal,nombre_apli,version_apli),
constraint fk1_aplicacion_instalada_terminal foreign key (id_terminal) references sesion(id_terminal) on delete cascade on update cascade,
constraint fk3_aplicacion_instalada_terminal foreign key (nombre_apli) references aplicacion(nombre),
constraint fk4_aplicacion_instalada_terminal foreign key (version_apli) references aplicacion(version)
);
-- AplicacionDependeAplicacion(NApli,VerApli,Naplidep,VerApliden) NApli,VerApli clave foranea de Aplicación Naplidep,VerApliden clave foranea de Aplicación
create table aplicacion_depende_aplicacion(
n_apli varchar(20) not null,
ver_apli varchar(5) not null,
napli_dep varchar(20) not null,
verapli_dep varchar(5) not null,
constraint pk_aplicacion_depende_aplicacion primary key(n_apli ,ver_apli,napli_dep,verapli_dep),
constraint fk1_aplicacion_depende_aplicacion foreign key (n_apli) references aplicacion(nombre) on delete cascade on update cascade,
constraint fk2_aplicacion_depende_aplicacion foreign key (ver_apli) references aplicacion(version),
constraint fk3_aplicacion_depende_aplicacion foreign key (napli_dep) references aplicacion(nombre) on delete cascade on update cascade,
constraint fk4_aplicacion_depende_aplicacion foreign key (veraplidep) references aplicacion(version)
);
-- AplicacionRequiereServicio(NApli,VerApli,Id_Servidor,NombreServicio) NApli,VerApli clave foranea de Aplicación Servidor,NombreServicio clave foranea de Servicio
create table aplicacion_requiere_servicio(
n_apli varchar(20) not null,
ver_apli varchar(5) not null,
id_servidor int unsigned not null,
nombreservicio varchar(10) not null,
constraint pk_aplicacion_requiere_servicio primary key(n_apli ,ver_apli,napli_dep,verapli_dep),
constraint fk1_aplicacion_requiere_servicio foreign key (n_apli) references aplicacion(nombre) on delete cascade on update cascade,
constraint fk2_aplicacion_requiere_servicio foreign key (ver_apli) references aplicacion(version),
constraint fk3_aplicacion_requiere_servicio foreign key (id_servidor) references servicio(id_servidor) on delete cascade on update cascade,
constraint fk4_aplicacion_requiere_servicio foreign key (nombreservicio) references servicio(nombreservicio)
);
-- activa las claves foraneas
set foreign_key_checks=on;