Zrobiłem to w ten sposób, stworzyłem 3 tabele:
-klient
-rejestracja_ogloszenia
-data_emisji
I połączyłem relacji jeden do wielu. Tak wygląda skrypt:
CODE
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,ALLOW_INVALID_DATES';
CREATE SCHEMA IF NOT EXISTS `ogloszenia` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci ;
USE `ogloszenia` ;
-- -----------------------------------------------------
-- Table `ogloszenia`.`Klient`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `ogloszenia`.`Klient` (
`id` INT NOT NULL AUTO_INCREMENT ,
`name` VARCHAR(45) NOT NULL ,
`surname` VARCHAR(45) NOT NULL ,
`email` VARCHAR(45) NOT NULL ,
`address` VARCHAR(45) NOT NULL ,
`street` VARCHAR(45) NOT NULL ,
`phone` VARCHAR(12) NOT NULL ,
`post_code` VARCHAR(6) NOT NULL ,
`date` DATE NOT NULL ,
PRIMARY KEY (`id`) ,
UNIQUE INDEX `email_UNIQUE` (`email` ASC) )
ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table `ogloszenia`.`rejestracja_ogłoszenia`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `ogloszenia`.`rejestracja_ogłoszenia` (
`id` INT NOT NULL AUTO_INCREMENT ,
`Klient_id` INT NOT NULL ,
`text` TEXT NOT NULL ,
`rodzaj_ogłoszenia` VARCHAR(45) NOT NULL ,
`moduł` INT NOT NULL ,
`cena` DECIMAL(11,4) NOT NULL ,
PRIMARY KEY (`id`, `Klient_id`) ,
INDEX `fk_rejestracja_ogłoszenia_Klient_idx` (`Klient_id` ASC) ,
CONSTRAINT `fk_rejestracja_ogłoszenia_Klient`
FOREIGN KEY (`Klient_id` )
REFERENCES `ogloszenia`.`Klient` (`id` )
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table `ogloszenia`.`data_emisji`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `ogloszenia`.`data_emisji` (
`id` INT NOT NULL AUTO_INCREMENT ,
`rejestracja_ogłoszenia_id` INT NOT NULL ,
`data` DATE NOT NULL ,
PRIMARY KEY (`id`, `rejestracja_ogłoszenia_id`) ,
INDEX `fk_data_emisji_rejestracja_ogłoszenia1_idx` (`rejestracja_ogłoszenia_id` ASC) ,
CONSTRAINT `fk_data_emisji_rejestracja_ogłoszenia1`
FOREIGN KEY (`rejestracja_ogłoszenia_id` )
REFERENCES `ogloszenia`.`rejestracja_ogłoszenia` (`id` )
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;
USE `ogloszenia` ;
SET SQL_MODE=@OLD_SQL_MODE;
SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS;
SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS;
Tak diagram:
http://imageshack.us/photo/my-images/547/diagrameer.jpgPiszcie co myślicie czy mam jakieś rażące błędy itd.