1、 领域建模
-- MySQL Script generated by MySQL Workbench
-- Mon Apr 30 00:22:09 2018
-- Model: New Model Version: 1.0
-- MySQL Workbench Forward Engineering
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';
-- -----------------------------------------------------
-- Schema mydb
-- -----------------------------------------------------
-- -----------------------------------------------------
-- Schema mydb
-- -----------------------------------------------------
CREATE SCHEMA IF NOT EXISTS `mydb` DEFAULT CHARACTER SET utf8 ;
USE `mydb` ;
-- -----------------------------------------------------
-- Table `mydb`.`CreditCard`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `mydb`.`CreditCard` (
`card number` VARCHAR(45) NOT NULL,
`security code` VARCHAR(45) NOT NULL,
`CreditCardcol` VARCHAR(45) NULL,
PRIMARY KEY (`card number`))
ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table `mydb`.`Traveler`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `mydb`.`Traveler` (
`id` INT NULL,
`full name` VARCHAR(45) NOT NULL,
`phone` VARCHAR(20) NOT NULL,
`email` VARCHAR(45) NOT NULL,
PRIMARY KEY (`id`),
UNIQUE INDEX `phone_UNIQUE` (`phone` ASC),
CONSTRAINT `card number`
FOREIGN KEY ()
REFERENCES `mydb`.`CreditCard` ()
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table `mydb`.`Hotel`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `mydb`.`Hotel` (
`name` VARCHAR(45) NOT NULL,
PRIMARY KEY (`name`))
ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table `mydb`.`Reservation`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `mydb`.`Reservation` (
`` INT NOT NULL,
`check in date` VARCHAR(45) NOT NULL,
`check out date` VARCHAR(45) NOT NULL,
PRIMARY KEY (``),
CONSTRAINT `customer id`
FOREIGN KEY ()
REFERENCES `mydb`.`Traveler` ()
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `hotel name`
FOREIGN KEY ()
REFERENCES `mydb`.`Hotel` ()
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table `mydb`.`Location`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `mydb`.`Location` (
`code` VARCHAR(20) NOT NULL,
`name` VARCHAR(45) NOT NULL,
PRIMARY KEY (`code`))
ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table `mydb`.`Room`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `mydb`.`Room` (
`id` VARCHAR(45) NOT NULL,
`type` VARCHAR(20) NOT NULL,
`isEmpty` TINYINT NOT NULL,
PRIMARY KEY (`id`),
CONSTRAINT `hotel id`
FOREIGN KEY ()
REFERENCES `mydb`.`Hotel` ()
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `location code`
FOREIGN KEY ()
REFERENCES `mydb`.`Location` ()
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB
DEFAULT CHARACTER SET = big5;
SET SQL_MODE=@OLD_SQL_MODE;
SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS;
SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS;
相同点:两者都是抽象概念,都将业务的各概念,关系等抽象化,并用图表示出来,将需求抽象为可视化的概念关系。 不同点:领域模型不需要考虑太多的实现细节,更注重的是表达实体以及其之间的关系,还引进了中介实体的概念而数据库逻辑模型则是对领域模型的进一步细化,需要给出每个字段的具体细节,并用于生成代码。