[Php-avanzado] tablas 1.3 de autoclas
Carlos Brandes
carlosbrandes en gmail.com
Jue Ago 27 16:25:24 ART 2009
Leonardo estoy absolutamente seguro que hace falta que te mande el .sql que
te paso en este momento, miralo por favor y vemos. Use el mysql-workbench,
me gusto, baje el de la pagina oficial, pero no lo pude hacer funcionar
(para usuarios guindows). Baje otro de por ahi que si funciono.
SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0;
SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0;
SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='TRADITIONAL';
CREATE SCHEMA IF NOT EXISTS `autoclas` DEFAULT CHARACTER SET latin1 COLLATE
latin1_swedish_ci ;
USE `autoclas`;
-- -----------------------------------------------------
-- Table `autoclas`.`provincias`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `autoclas`.`provincias` (
`id_provincia` INT NOT NULL AUTO_INCREMENT ,
`provincia` VARCHAR(50) NOT NULL ,
PRIMARY KEY (`id_provincia`) )
ENGINE = innoDB;
-- -----------------------------------------------------
-- Table `autoclas`.`ciudades`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `autoclas`.`ciudades` (
`id_ciudad` INT UNSIGNED NOT NULL AUTO_INCREMENT ,
`provincias_id_provincia` INT UNSIGNED NOT NULL ,
`ciudad` VARCHAR(100) NOT NULL ,
PRIMARY KEY (`id_ciudad`) ,
INDEX provincias_id_provincia (`provincias_id_provincia` ASC) ,
CONSTRAINT `provincias_id_provincia`
FOREIGN KEY (`provincias_id_provincia` )
REFERENCES `autoclas`.`provincias` (`id_provincia` )
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB
DELAY_KEY_WRITE = '1;
-- -----------------------------------------------------
-- Table `autoclas`.`anunciantes`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `autoclas`.`anunciantes` (
`id_anunciante` INT UNSIGNED NOT NULL AUTO_INCREMENT ,
`usuario` VARCHAR(20) NOT NULL ,
`password` VARCHAR(20) NOT NULL ,
`nombre` VARCHAR(30) NOT NULL ,
`apellido` VARCHAR(30) NOT NULL ,
`email` VARCHAR(50) NOT NULL ,
`telefono` VARCHAR(40) NOT NULL ,
`id_ciudad` INT NULL ,
`ciudades_id_ciudad` INT UNSIGNED NOT NULL ,
PRIMARY KEY (`id_anunciante`, `ciudades_id_ciudad`) ,
UNIQUE INDEX usuario (`usuario` ASC, `password` ASC) ,
INDEX fk_anunciantes_ciudades (`ciudades_id_ciudad` ASC) ,
CONSTRAINT `fk_anunciantes_ciudades`
FOREIGN KEY (`ciudades_id_ciudad` )
REFERENCES `autoclas`.`ciudades` (`id_ciudad` )
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = innoDB;
-- -----------------------------------------------------
-- Table `autoclas`.`caracteristicas`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `autoclas`.`caracteristicas` (
`id_caracteristica` INT(2) UNSIGNED NOT NULL AUTO_INCREMENT ,
`caracteristica` ENUM('malo','regular','bueno','optimo') NOT NULL ,
PRIMARY KEY (`id_caracteristica`) )
ENGINE = innoDB;
-- -----------------------------------------------------
-- Table `autoclas`.`combustibles`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `autoclas`.`combustibles` (
`id_combustible` INT(2) UNSIGNED NOT NULL AUTO_INCREMENT ,
`cobustible` ENUM('diesel','gnc','nafta') NOT NULL ,
PRIMARY KEY (`id_combustible`) )
ENGINE = innoDB;
-- -----------------------------------------------------
-- Table `autoclas`.`condiciones`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `autoclas`.`condiciones` (
`id_condicion` INT(2) NOT NULL ,
`condicion` ENUM('particular','agencia') NOT NULL ,
PRIMARY KEY (`id_condicion`) )
ENGINE = innoDB;
-- -----------------------------------------------------
-- Table `autoclas`.`monedas`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `autoclas`.`monedas` (
`id_moneda` INT(2) UNSIGNED NOT NULL AUTO_INCREMENT ,
`moneda` ENUM('pesos','dolares','euros') NOT NULL ,
PRIMARY KEY (`id_moneda`) )
ENGINE = innoDB;
-- -----------------------------------------------------
-- Table `autoclas`.`operaciones`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `autoclas`.`operaciones` (
`id_operacion` INT(2) UNSIGNED NOT NULL AUTO_INCREMENT ,
`operacion` ENUM('compra','venta','permuta') NOT NULL ,
PRIMARY KEY (`id_operacion`) )
ENGINE = innoDB;
-- -----------------------------------------------------
-- Table `autoclas`.`marcas`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `autoclas`.`marcas` (
`id_marca` INT UNSIGNED NOT NULL AUTO_INCREMENT ,
`marca` VARCHAR(100) NOT NULL ,
PRIMARY KEY (`id_marca`) )
ENGINE = innoDB;
-- -----------------------------------------------------
-- Table `autoclas`.`modelos`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `autoclas`.`modelos` (
`id_modelo` INT UNSIGNED NOT NULL AUTO_INCREMENT ,
`marcas_id_marca` INT UNSIGNED NOT NULL ,
`modelo` VARCHAR(30) NOT NULL ,
PRIMARY KEY (`id_modelo`) ,
INDEX marcas_id_marca (`marcas_id_marca` ASC) ,
CONSTRAINT `marcas_id_marca`
FOREIGN KEY (`marcas_id_marca` )
REFERENCES `autoclas`.`marcas` (`id_marca` )
ON DELETE CASCADE
ON UPDATE CASCADE)
ENGINE = innoDB;
-- -----------------------------------------------------
-- Table `autoclas`.`avisos`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `autoclas`.`avisos` (
`id_aviso` INT UNSIGNED NOT NULL ,
`klilometros` VARCHAR(45) NULL ,
`precio` INT NULL ,
`fecha_publicacion` DATE NULL ,
`descripcion` VARCHAR(100) NULL ,
`monedas_id_moneda` INT(2) NULL ,
`anunciantes_id_anunciante` INT NULL ,
`operaciones_id_operacion` INT(2) NULL ,
`condiciones_id_condicion` INT(2) NULL ,
`modelos_id_modelo` INT NULL ,
`combustibles_id_combustible` INT(2) NULL ,
`caracteristicas_id_caracteristica` INT(2) NULL ,
PRIMARY KEY (`id_aviso`) ,
INDEX monedas_id_moneda (`monedas_id_moneda` ASC) ,
INDEX anunciantes_id_anunciante (`anunciantes_id_anunciante` ASC) ,
INDEX operaciones_id_operacion (`operaciones_id_operacion` ASC) ,
INDEX condiciones_id_condicion (`condiciones_id_condicion` ASC) ,
INDEX modelos_id_modelo (`modelos_id_modelo` ASC) ,
INDEX combustibles_id_combustibles (`combustibles_id_combustible` ASC) ,
INDEX caracteristicas_id_caracteristica
(`caracteristicas_id_caracteristica` ASC) ,
CONSTRAINT `monedas_id_moneda`
FOREIGN KEY (`monedas_id_moneda` )
REFERENCES `autoclas`.`monedas` (`id_moneda` )
ON DELETE CASCADE
ON UPDATE CASCADE,
CONSTRAINT `anunciantes_id_anunciante`
FOREIGN KEY (`anunciantes_id_anunciante` )
REFERENCES `autoclas`.`anunciantes` (`id_anunciante` )
ON DELETE CASCADE
ON UPDATE CASCADE,
CONSTRAINT `operaciones_id_operacion`
FOREIGN KEY (`operaciones_id_operacion` )
REFERENCES `autoclas`.`operaciones` (`id_operacion` )
ON DELETE CASCADE
ON UPDATE CASCADE,
CONSTRAINT `condiciones_id_condicion`
FOREIGN KEY (`condiciones_id_condicion` )
REFERENCES `autoclas`.`condiciones` (`id_condicion` )
ON DELETE CASCADE
ON UPDATE CASCADE,
CONSTRAINT `modelos_id_modelo`
FOREIGN KEY (`modelos_id_modelo` )
REFERENCES `autoclas`.`modelos` (`id_modelo` )
ON DELETE CASCADE
ON UPDATE CASCADE,
CONSTRAINT `combustibles_id_combustibles`
FOREIGN KEY (`combustibles_id_combustible` )
REFERENCES `autoclas`.`combustibles` (`id_combustible` )
ON DELETE CASCADE
ON UPDATE CASCADE,
CONSTRAINT `caracteristicas_id_caracteristica`
FOREIGN KEY (`caracteristicas_id_caracteristica` )
REFERENCES `autoclas`.`caracteristicas` (`id_caracteristica` )
ON DELETE CASCADE
ON UPDATE CASCADE)
ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table `autoclas`.`imagenes`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `autoclas`.`imagenes` (
`id_imagen` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT ,
`avisos_id_aviso` INT UNSIGNED NOT NULL ,
`path` VARCHAR(100) NOT NULL ,
PRIMARY KEY (`id_imagen`) ,
INDEX avisos_id_aviso (`avisos_id_aviso` ASC) ,
CONSTRAINT `avisos_id_aviso`
FOREIGN KEY (`avisos_id_aviso` )
REFERENCES `autoclas`.`avisos` (`id_aviso` )
ON DELETE CASCADE
ON UPDATE CASCADE)
ENGINE = innoDB;
SET SQL_MODE=@OLD_SQL_MODE;
SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS;
SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS;
Con respecto a esto que te estoy pasando, tengo una pila de dudas, que creo
que te voy a formular el dia sabado.
Saludos Carlos.
PD: Estoy tratando de respetar lo escrito en la srs, pero le sacaria y le
agregaria algunas cosas que hoy nop me parecen importantes.
El 25 de agosto de 2009 17:50, Leonardo Tadei - Pegasus Tech Supply <
leonardot en pegasusnet.com.ar> escribió:
> Carlos!
>
> Ahora sí!!
> Esto significa que un aviso puede tener múltiples imágenes y es
> consistente con la SRS.
>
> Pasalo a SQL. Recordá que los int de los autoinvrementales tienen
> que
> ser grandes, por lo menos 11.
> Tampoco pongas los varchar demasiado justos.
>
> No sé si hace falta que me lo envíes, pero si querés, con gusto lo
> miro.
>
> Seguimos!
>
>
> El mar, 25-08-2009 a las 17:15 -0300, Carlos Brandes escribió:
> > No consideres el mail anterior este es el que vale.
> >
> >
> >
> > Avisos
> > id_aviso
> >
> > id_anunciante
> >
> > id_caracteristica
> > id_operacion
> > id_condicion
> > id_modelo
> > id_combustible
> > id_moneda
> > kilómetros
> > precio
> > descripción
> >
> > fecha_public
> >
> >
> >
> > Imagenes
> > id_imagen
> >
> > Id_aviso
> > path
> >
> >
> >
> > Fijate y charlamos. Saludos Carlos.
> >
> >
> >
> > _______________________________________________
> > Php-avanzado mailing list
> > Php-avanzado en pato2.fi.mdp.edu.ar
> > http://www3.fi.mdp.edu.ar/cgi-bin/mailman/listinfo/php-avanzado
> --
>
> Leonardo Tadei
> leonardot en pegasusnet.com.ar
> http://blog.pegasusnet.com.ar
> Firma pública: http://www.pegasusnet.com.ar/LeonardoTadei-public.key
>
> _______________________________________________
> Php-avanzado mailing list
> Php-avanzado en pato2.fi.mdp.edu.ar
> http://www3.fi.mdp.edu.ar/cgi-bin/mailman/listinfo/php-avanzado
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: http://www3.fi.mdp.edu.ar/cgi-bin/mailman/private/php-avanzado/attachments/20090827/13ad3c55/attachment.html
Más información sobre la lista de distribución Php-avanzado