MySQL - relacion de base de datos de inventarios

 
Vista:

relacion de base de datos de inventarios

Publicado por josue (1 intervención) el 17/10/2012 23:28:19
ayuda por favor, estoy haciendo un programa en donde me toca hacer una base de datos de un inventario de activos, la idea como yo la pensaba la plasme en navicat, pero cuando hago consultas creo y siento que no me las da por que mis relaciones estan malas, alguien experto en BD Me puede ayudar a corregirlas o por lo menos a denotar que errores tiene por favor, envio el scrip para que lo revisen los que saben.

SET FOREIGN_KEY_CHECKS=0;

-- ----------------------------
-- Table structure for `activos`
-- ----------------------------
DROP TABLE IF EXISTS `activos`;
CREATE TABLE `activos` (
`idActivo` int(11) NOT NULL AUTO_INCREMENT ,
`fk_tipo` int(11) NOT NULL ,
`fk_idEstado` int(11) NOT NULL ,
`fk_Ubicacion` int(11) NOT NULL ,
`fk_idRegistro` int(11) NOT NULL ,
`nombre` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL ,
`modelo` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ,
`serie` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ,
`cod_MSH` int(11) NOT NULL ,
PRIMARY KEY (`idActivo`),
FOREIGN KEY (`fk_idRegistro`) REFERENCES `registro` (`idRegistro`) ON DELETE RESTRICT ON UPDATE RESTRICT,
FOREIGN KEY (`fk_idEstado`) REFERENCES `estados` (`idEstado`) ON DELETE NO ACTION ON UPDATE CASCADE,
FOREIGN KEY (`fk_tipo`) REFERENCES `tipo` (`idTipo`) ON DELETE NO ACTION ON UPDATE CASCADE,
FOREIGN KEY (`fk_Ubicacion`) REFERENCES `piso` (`idUbicacion`) ON DELETE NO ACTION ON UPDATE CASCADE,
INDEX `fk_Tipo` (`fk_tipo`) USING BTREE ,
INDEX `fk_Estado` (`fk_idEstado`) USING BTREE ,
INDEX `fk_Ubicacion` (`fk_Ubicacion`) USING BTREE ,
INDEX `fk_idRegistro` (`fk_idRegistro`) USING BTREE
)
ENGINE=InnoDB
DEFAULT CHARACTER SET=utf8 COLLATE=utf8_general_ci
AUTO_INCREMENT=2

;

-- ----------------------------
-- Records of activos
-- ----------------------------
BEGIN;
INSERT INTO `activos` VALUES ('1', '1', '1', '1', '1', 'LAPTOP', 'DELL GX620', 'RED3452TG', '1000');
COMMIT;

-- ----------------------------
-- Table structure for `estados`
-- ----------------------------
DROP TABLE IF EXISTS `estados`;
CREATE TABLE `estados` (
`idEstado` int(11) NOT NULL AUTO_INCREMENT ,
`tipoEstado` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL ,
`descripcion` text CHARACTER SET utf8 COLLATE utf8_general_ci NULL ,
PRIMARY KEY (`idEstado`)
)
ENGINE=InnoDB
DEFAULT CHARACTER SET=utf8 COLLATE=utf8_general_ci
AUTO_INCREMENT=5

;

-- ----------------------------
-- Records of estados
-- ----------------------------
BEGIN;
INSERT INTO `estados` VALUES ('1', 'ACTIVO', null), ('2', 'INACTIVO', null), ('3', 'DESCARTES', null), ('4', 'DONADO', null);
COMMIT;

-- ----------------------------
-- Table structure for `oficina`
-- ----------------------------
DROP TABLE IF EXISTS `oficina`;
CREATE TABLE `oficina` (
`idOficina` int(11) NOT NULL AUTO_INCREMENT ,
`nombreOficina` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ,
`fkPiso` int(11) NULL DEFAULT NULL ,
PRIMARY KEY (`idOficina`),
FOREIGN KEY (`fkPiso`) REFERENCES `piso` (`idUbicacion`) ON DELETE RESTRICT ON UPDATE RESTRICT,
INDEX `fkPiso` (`fkPiso`) USING BTREE
)
ENGINE=InnoDB
DEFAULT CHARACTER SET=utf8 COLLATE=utf8_general_ci
AUTO_INCREMENT=4

;

-- ----------------------------
-- Records of oficina
-- ----------------------------
BEGIN;
INSERT INTO `oficina` VALUES ('1', 'administracion', null), ('2', 'gerencia', null), ('3', 'sistemas', null);
COMMIT;

-- ----------------------------
-- Table structure for `piso`
-- ----------------------------
DROP TABLE IF EXISTS `piso`;
CREATE TABLE `piso` (
`idUbicacion` int(11) NOT NULL AUTO_INCREMENT ,
`piso` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ,
PRIMARY KEY (`idUbicacion`)
)
ENGINE=InnoDB
DEFAULT CHARACTER SET=utf8 COLLATE=utf8_general_ci
AUTO_INCREMENT=4

;

-- ----------------------------
-- Records of piso
-- ----------------------------
BEGIN;
INSERT INTO `piso` VALUES ('1', 'PISO 1'), ('2', 'PISO 2');
COMMIT;

-- ----------------------------
-- Table structure for `registro`
-- ----------------------------
DROP TABLE IF EXISTS `registro`;
CREATE TABLE `registro` (
`idRegistro` int(11) NOT NULL AUTO_INCREMENT ,
`ingreso` date NULL DEFAULT NULL ,
`salidas` date NULL DEFAULT NULL ,
`mantenimientos` date NULL DEFAULT NULL ,
PRIMARY KEY (`idRegistro`)
)
ENGINE=InnoDB
DEFAULT CHARACTER SET=utf8 COLLATE=utf8_general_ci
AUTO_INCREMENT=2

;

-- ----------------------------
-- Records of registro
-- ----------------------------
BEGIN;
INSERT INTO `registro` VALUES ('1', '2012-10-01', '2012-10-18', '2012-10-19');
COMMIT;

-- ----------------------------
-- Table structure for `responsables`
-- ----------------------------
DROP TABLE IF EXISTS `responsables`;
CREATE TABLE `responsables` (
`idResponsable` int(11) NOT NULL AUTO_INCREMENT ,
`nombre` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ,
PRIMARY KEY (`idResponsable`)
)
ENGINE=InnoDB
DEFAULT CHARACTER SET=utf8 COLLATE=utf8_general_ci
AUTO_INCREMENT=4

;

-- ----------------------------
-- Records of responsables
-- ----------------------------
BEGIN;
INSERT INTO `responsables` VALUES ('1', 'JOSUE GODOY'), ('2', 'MIRIAM FLORES'), ('3', 'JUAN PAREDES');
COMMIT;

-- ----------------------------
-- Table structure for `subtipo`
-- ----------------------------
DROP TABLE IF EXISTS `subtipo`;
CREATE TABLE `subtipo` (
`idSubTipo` int(11) NOT NULL AUTO_INCREMENT ,
`subTipo` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL ,
`fk_tipo` int(11) NOT NULL ,
PRIMARY KEY (`idSubTipo`),
FOREIGN KEY (`fk_tipo`) REFERENCES `tipo` (`idTipo`) ON DELETE RESTRICT ON UPDATE RESTRICT,
INDEX `fk_tipo` (`fk_tipo`) USING BTREE
)
ENGINE=InnoDB
DEFAULT CHARACTER SET=utf8 COLLATE=utf8_general_ci
AUTO_INCREMENT=3

;

-- ----------------------------
-- Records of subtipo
-- ----------------------------
BEGIN;
INSERT INTO `subtipo` VALUES ('1', 'Escritorio', '1'), ('2', 'Mesa', '1');
COMMIT;

-- ----------------------------
-- Table structure for `tipo`
-- ----------------------------
DROP TABLE IF EXISTS `tipo`;
CREATE TABLE `tipo` (
`idTipo` int(11) NOT NULL AUTO_INCREMENT ,
`tipo` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL ,
PRIMARY KEY (`idTipo`)
)
ENGINE=InnoDB
DEFAULT CHARACTER SET=utf8 COLLATE=utf8_general_ci
AUTO_INCREMENT=6

;

-- ----------------------------
-- Records of tipo
-- ----------------------------
BEGIN;
INSERT INTO `tipo` VALUES ('1', 'MOBILIARIO'), ('2', 'EQUIPO INFORMATICO'), ('3', 'VEHICULOS'), ('4', 'MATERIAL DE OFICINA'), ('5', 'ASEO');
COMMIT;

-- ----------------------------
-- Table structure for `ubicacion_responsable`
-- ----------------------------
DROP TABLE IF EXISTS `ubicacion_responsable`;
CREATE TABLE `ubicacion_responsable` (
`fk_idUbicacion` int(11) NOT NULL DEFAULT 0 ,
`fk_responsable` int(11) NOT NULL DEFAULT 0 ,
PRIMARY KEY (`fk_idUbicacion`, `fk_responsable`),
FOREIGN KEY (`fk_idUbicacion`) REFERENCES `piso` (`idUbicacion`) ON DELETE RESTRICT ON UPDATE RESTRICT,
FOREIGN KEY (`fk_responsable`) REFERENCES `responsables` (`idResponsable`) ON DELETE RESTRICT ON UPDATE RESTRICT,
INDEX `fk_responsable` (`fk_responsable`) USING BTREE
)
ENGINE=InnoDB
DEFAULT CHARACTER SET=utf8 COLLATE=utf8_general_ci

;

-- ----------------------------
-- Records of ubicacion_responsable
-- ----------------------------
BEGIN;
COMMIT;

-- ----------------------------
-- Auto increment value for `activos`
-- ----------------------------
ALTER TABLE `activos` AUTO_INCREMENT=2;

-- ----------------------------
-- Auto increment value for `estados`
-- ----------------------------
ALTER TABLE `estados` AUTO_INCREMENT=5;

-- ----------------------------
-- Auto increment value for `oficina`
-- ----------------------------
ALTER TABLE `oficina` AUTO_INCREMENT=4;

-- ----------------------------
-- Auto increment value for `piso`
-- ----------------------------
ALTER TABLE `piso` AUTO_INCREMENT=4;

-- ----------------------------
-- Auto increment value for `registro`
-- ----------------------------
ALTER TABLE `registro` AUTO_INCREMENT=2;

-- ----------------------------
-- Auto increment value for `responsables`
-- ----------------------------
ALTER TABLE `responsables` AUTO_INCREMENT=4;

-- ----------------------------
-- Auto increment value for `subtipo`
-- ----------------------------
ALTER TABLE `subtipo` AUTO_INCREMENT=3;

-- ----------------------------
-- Auto increment value for `tipo`
-- ----------------------------
ALTER TABLE `tipo` AUTO_INCREMENT=6;
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder