Ver Mensaje Individual
  #1 (permalink)  
Antiguo 01/10/2008, 05:34
Avatar de Synkronice
Synkronice
 
Fecha de Ingreso: octubre-2007
Ubicación: Madrid
Mensajes: 831
Antigüedad: 16 años, 7 meses
Puntos: 48
Exclamación Relacion 1-1 en MySQL 5

Hola,

mi cuestión es la siguiente. Hice el diseño de la base de datos con la aplicación MYSQL WORKBENCH, importe el diseño correctamente pero ahora me he dado cuenta que en la relación 1-1 entre las tablas personas y usuarios puedo dar de alta usuarios con el mismo id de persona.

Os pego el SQL generado por MYSQL WORKBENCH para crear la bbddd.

Código:
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 `my_database` DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ;
USE `my_database`;

-- -----------------------------------------------------
-- Table `my_database`.`personas`
-- -----------------------------------------------------
DROP TABLE IF EXISTS `my_database`.`personas` ;

CREATE  TABLE IF NOT EXISTS `my_database`.`personas` (
  `idpersonas` INT UNSIGNED NOT NULL AUTO_INCREMENT ,
  `nombre` VARCHAR(100) NULL ,
  `apellido_1` VARCHAR(100) NULL ,
  `apellido_2` VARCHAR(100) NULL ,
  `sexo` ENUM('H','M') NULL ,
  `fecha_nacimiento` DATE NULL ,
  `dni` VARCHAR(12) NULL ,
  `telefono_1` VARCHAR(20) NULL ,
  `telefono_2` VARCHAR(20) NULL ,
  `telefono_3` VARCHAR(20) NULL ,
  `direccion` VARCHAR(255) NULL ,
  `codigo_postal` VARCHAR(6) NULL ,
  `localidad` VARCHAR(150) NULL ,
  `provincia` VARCHAR(100) NULL ,
  `pais` VARCHAR(100) NULL ,
  PRIMARY KEY (`idpersonas`) )
ENGINE = InnoDB;


-- -----------------------------------------------------
-- Table `my_database`.`usuarios`
-- -----------------------------------------------------
DROP TABLE IF EXISTS `my_database`.`usuarios` ;

CREATE  TABLE IF NOT EXISTS `my_database`.`usuarios` (
  `idusuarios` INT UNSIGNED NOT NULL AUTO_INCREMENT ,
  `personas_idpersonas` INT UNSIGNED NOT NULL ,
  `activo` TINYINT(1) NOT NULL DEFAULT 0 ,
  `username` VARCHAR(12) NOT NULL ,
  `password` VARCHAR(32) NOT NULL ,
  `email` VARCHAR(255) NULL ,
  PRIMARY KEY (`idusuarios`) ,
  INDEX fk_usuarios_personas (`personas_idpersonas` ASC) ,
  CONSTRAINT `fk_usuarios_personas`
    FOREIGN KEY (`personas_idpersonas` )
    REFERENCES `my_database`.`personas` (`idpersonas` )
    ON DELETE CASCADE
    ON UPDATE CASCADE)
ENGINE = InnoDB;
Gracias por adelantado.

Saludos!