Acta de la Reunión 11 (16/1/2008)
Revisamos los diagramas propuestos por el profesor. Dado el visto bueno, nos pide que implementemos la base de datos. Para ello usaremos el diseño generado con el programa fabFORCE generando así las correspondientes instrucciones SQL de creación de tablas.

el código SQL para la generación de la base de datos se muestra a continuación:
Notar que el código que se genera crea las tablas necesarias y algunas filas para su uso con las reclamaciones. La incorporación de la parte de soluciones y reclamaciones solo conllevaría algunas modificaciones en el actual diseño. Siendo necesario la inclusión de alguna nueva tabla así como la posible inclusión de atributos adicionales en las ya existentes.

CREATE TABLE Acciones (
  idAccion INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
  idTipoAccion INTEGER UNSIGNED NOT NULL,
  descripcion TEXT NULL,
  PRIMARY KEY(idAccion),
  INDEX Acciones_TipoAccion(idTipoAccion)
);
--------------------------------------
--------------------------------------
 
 
CREATE TABLE Clientes (
  idCliente INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
  idTipoCliente INTEGER UNSIGNED NOT NULL,
  nivelDeComprensión TINYINT UNSIGNED NULL,
  nombre VARCHAR(45) NULL,
  apellidos VARCHAR(45) NULL,
  fechaDeNacimiento DATE NULL,
  profesión VARCHAR(45) NULL,
  PRIMARY KEY(idCliente),
  INDEX Clientes_FK_TipoCliente(idTipoCliente)
);
--------------------------------------
--------------------------------------
 
 
CREATE TABLE HistoricoAcciones (
  idHistoricoAccion INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
  idAccion INTEGER UNSIGNED NOT NULL,
  idProducto INTEGER UNSIGNED NOT NULL,
  idIncidencia INTEGER UNSIGNED NOT NULL,
  detalles TEXT NULL,
  numLlamada INTEGER UNSIGNED NULL,
  fecha DATETIME NULL,
  PRIMARY KEY(idHistoricoAccion),
  INDEX HistoricoAcciones_FK_Incidencias(idIncidencia),
  INDEX HistoricoAcciones_FK_Productos(idProducto),
  INDEX HistoricoAcciones_FKAcciones(idAccion)
);
--------------------------------------
--------------------------------------
 
 
CREATE TABLE HistoricoDeudas (
  idHistoricoDeuda INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
  idCliente INTEGER UNSIGNED NOT NULL,
  deuda FLOAT NULL,
  fecha DATE NULL,
  PRIMARY KEY(idHistoricoDeuda),
  INDEX HistoricoDeudas_FK_Clientes(idCliente)
);
--------------------------------------
--------------------------------------
 
 
CREATE TABLE HistoricoReacciones (
  idHistoricoReaccion INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
  idProducto INTEGER UNSIGNED NOT NULL,
  idIncidencia INTEGER UNSIGNED NOT NULL,
  idReaccion INTEGER UNSIGNED NOT NULL,
  detalles TEXT NULL,
  numLlamada INTEGER UNSIGNED NULL,
  fecha DATETIME NULL,
  PRIMARY KEY(idHistoricoReaccion),
  INDEX HistoricoReacciones_FK_Reacciones(idReaccion),
  INDEX HistoricoReacciones_FK_Incidencias(idIncidencia),
  INDEX HistoricoReacciones_FK_Productos(idProducto)
);
--------------------------------------
--------------------------------------
 
 
CREATE TABLE Incidencias (
  idIncidencia INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
  idCliente INTEGER UNSIGNED NOT NULL,
  tipo VARCHAR(45) NULL,
  fecha DATETIME NULL,
  PRIMARY KEY(idIncidencia),
  INDEX Incidencias_FK_Clientes(idCliente)
);
--------------------------------------
--------------------------------------
 
 
CREATE TABLE Productos (
  idProducto INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
  problemasProducto BOOL NULL,
  mesesDeGarantia INTEGER UNSIGNED NULL,
  Caracteristicas TEXT NULL,
  TipoProducto TEXT NULL,
  PRIMARY KEY(idProducto)
);
--------------------------------------
--------------------------------------
 
 
CREATE TABLE Reacciones (
  idReaccion INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
  idTipoReaccion INTEGER UNSIGNED NOT NULL,
  descripcion TEXT NULL,
  PRIMARY KEY(idReaccion),
  INDEX Reacciones_FK_TipoReaccion(idTipoReaccion)
);
--------------------------------------
--------------------------------------
 
 
CREATE TABLE Reglas (
  idReglas INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
  idAccion INTEGER UNSIGNED NOT NULL,
  edad_Min TINYINT UNSIGNED NULL,
  edad_Max TINYINT UNSIGNED NULL,
  profesión VARCHAR(45) NULL,
  claseSocial VARCHAR(45) NULL,
  tipoCliente VARCHAR(45) NULL,
  estadoUltimaLlamada VARCHAR(45) NULL,
  PRIMARY KEY(idReglas),
  INDEX Reglas_FK_Acciones(idAccion)
);
--------------------------------------
--------------------------------------
 
 
CREATE TABLE TipoAcciones (
  idTipoAccion INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
  nombreTipo VARCHAR(45) NULL,
  descripción TEXT NULL,
  clasificación SET("Blanda", "Dura") NULL,
  PRIMARY KEY(idTipoAccion)
);
--------------------------------------
--------------------------------------
 
 
CREATE TABLE TipoClientes (
  idTipoCliente INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
  nombreTipo VARCHAR(45) NULL,
  descripción TEXT NULL,
  PRIMARY KEY(idTipoCliente)
);
--------------------------------------
--------------------------------------
 
 
CREATE TABLE TipoReacciones (
  idTipoReaccion INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
  nombreTipo VARCHAR(45) NULL,
  descripción TEXT NULL,
  clasificación SET("Blanda", "Dura") NULL,
  PRIMARY KEY(idTipoReaccion)
);
--------------------------------------
--------------------------------------
 
 
INSERT INTO `acciones` (`idAccion`, `idTipoAccion`, `descripcion`) VALUES
(1, 1, 'Se proveerá al cliente del servicio de la forma más rápida posible.
    Aumentando la prioridad de sus incidencias, o incluso saltándose la cola de casos pendientes.'),
(2, 1, 'Debido al perfil de cliente se tardará más de lo normal en proveer el servicio.
     Pudiéndose retrasar hasta el doble de lo establecido en el código de buenas prácticas
     o hasta que el cliente cumpla un determinado criterio, normalmente económico.'),
(3, 2, 'Se le proporcionará una reparación rápida y sin coste para el cliente.'),
(4, 2, 'Se le reparará el dispositivo asumiendo el cliente el 100% del coste de la reparación.');
--------------------------------------
--------------------------------------
 
 
INSERT INTO Clientes (idCliente, nivelDeComprensión, nombre, apellidos, fechaDeNacimiento) VALUES
    (NULL, 1, 'Juan', 'Pérez' , '1945-10-12');
INSERT INTO Clientes (idCliente, nivelDeComprensión, nombre, apellidos, fechaDeNacimiento) VALUES
    (NULL, 2, 'María', 'González' , '1977-05-02');
INSERT INTO Clientes (idCliente, nivelDeComprensión, nombre, apellidos, fechaDeNacimiento) VALUES
    (NULL, 3, 'Francisco', 'Sánchez' , '1985-04-15');
INSERT INTO Clientes (idCliente, nivelDeComprensión, nombre, apellidos, fechaDeNacimiento) VALUES
    (NULL, 1, 'Mercedes', 'Cruz' , '1962-04-20');
INSERT INTO Clientes (idCliente, nivelDeComprensión, nombre, apellidos, fechaDeNacimiento) VALUES
    (NULL, 1, 'Roberto', 'Pla' , '1955-12-25');
--------------------------------------
--------------------------------------
 
 
INSERT INTO HistoricoDeudas (idHistoricoDeuda, idCliente, deuda,  fecha) VALUES
    (NULL, 1,  100 ,     '2007-1-15');
INSERT INTO HistoricoDeudas (idHistoricoDeuda, idCliente, deuda,  fecha) VALUES
    (NULL, 2,  10000 , '2007-2-5');
INSERT INTO HistoricoDeudas (idHistoricoDeuda, idCliente, deuda,  fecha) VALUES
    (NULL, 1,  500 ,     '2007-4-14');
INSERT INTO HistoricoDeudas (idHistoricoDeuda, idCliente, deuda,  fecha) VALUES
    (NULL, 2,  20000 , '2007-5-30');
INSERT INTO HistoricoDeudas (idHistoricoDeuda, idCliente, deuda,  fecha) VALUES
    (NULL, 2,  1000 ,   '2007-6-8');
--------------------------------------
--------------------------------------
 
 
INSERT INTO Incidencias (idIncidencia, idCliente, tipo,  fecha) VALUES
    (NULL, 1,  'tipo1' , '2007-10-25');
--------------------------------------
--------------------------------------
 
 
INSERT INTO Productos (idProducto, problemasProducto, mesesDeGarantía,
            Caracteristicas,  TipoProducto) VALUES
     (NULL, 1,  12 , 'Con camara de fotos', 'Tipo1');
--------------------------------------
--------------------------------------
 
 
INSERT INTO `reglas` (`idReglas`, `idAccion`, `edad_Min`, `edad_Max`, `profesión`,
              `claseSocial`, `tipoCliente`, `estadoUltimaLlamada`) VALUES
(NULL, 1, 0, 17, NULL, NULL, 'Normal', NULL),
(NULL, 2, 18, 26, 'Ingeniería', NULL, 'Normal', 'conforme'),
(NULL, 1, 18, 26, '', NULL, 'moroso', 'disconforme'),
(NULL, 1, 35, 45, 'Funcionario', NULL, NULL, 'conforme');
--------------------------------------
--------------------------------------
 
 
INSERT INTO `tipoacciones` (`idTipoAccion`, `nombreTipo`, `descripción`, `clasificación`) VALUES
(1, 'Provisión Servicio', NULL, 'Blanda'),
(2, 'Reparación dispositivo', NULL, 'Blanda');
 

descarga el archivo 1.SQL