1.领域建模
a.阅读 Asg_RH 文档,按用例构建领域模型。
b. 数据库建模(E-R 模型)
1.使用MySQLWorkBench建模:
2.导出数据库脚本:
– MySQL Script generated by MySQL Workbench
– Sun Apr 29 22:47:44 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`.`Customer`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `mydb`.`Customer` (
`idCustomer` INT NOT NULL,
`password` VARCHAR(45) NOT NULL,
`name` VARCHAR(45) NOT NULL,
`email` VARCHAR(45) NULL,
`telephone` VARCHAR(45) NOT NULL,
PRIMARY KEY (`idCustomer`))
ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table `mydb`.`Reservation`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `mydb`.`Reservation` (
`idReservation` INT NOT NULL,
`roomtype` VARCHAR(45) NOT NULL,
`Reservationcol` VARCHAR(45) NULL,
`date` VARCHAR(45) NOT NULL,
`hotel` VARCHAR(45) NOT NULL,
`idCustomer` VARCHAR(45) NOT NULL,
PRIMARY KEY (`idReservation`),
CONSTRAINT `idCustomer`
FOREIGN KEY ()
REFERENCES `mydb`.`Customer` ()
ON DELETE CASCADE
ON UPDATE CASCADE)
ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table `mydb`.`Payment`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `mydb`.`Payment` (
`idPayment` INT NOT NULL,
`card_name` VARCHAR(45) NOT NULL,
`item` VARCHAR(45) NOT NULL,
`time` VARCHAR(45) NOT NULL,
`idReservation` VARCHAR(45) NOT NULL,
PRIMARY KEY (`idPayment`),
CONSTRAINT `idReservation`
FOREIGN KEY ()
REFERENCES `mydb`.`Reservation` ()
ON DELETE CASCADE
ON UPDATE CASCADE)
ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table `mydb`.`Hotel`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `mydb`.`Hotel` (
`idHotel` INT NOT NULL,
`name` VARCHAR(45) NULL,
`location` VARCHAR(45) NOT NULL,
`rating` VARCHAR(45) NULL,
`comment` VARCHAR(45) NULL,
`idReservation` VARCHAR(45) NOT NULL,
PRIMARY KEY (`idHotel`),
CONSTRAINT `idReservation`
FOREIGN KEY ()
REFERENCES `mydb`.`Reservation` ()
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table `mydb`.`Room`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `mydb`.`Room` (
`idRoom` INT NOT NULL,
`idHotel` VARCHAR(45) NOT NULL,
`type` VARCHAR(45) NOT NULL,
`price` VARCHAR(45) NOT NULL,
PRIMARY KEY (`idRoom`),
CONSTRAINT `idHotel`
FOREIGN KEY ()
REFERENCES `mydb`.`Hotel` ()
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;
SET SQL_MODE=@OLD_SQL_MODE;
SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS;
SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS;
3.数据库逻辑模型与领域模型异同:
- 相同点:都是抽象出来用以辅助分析与设计的工具,抽象出主要的类,描述不同类之间的关系
- 不同点:
- 领域模型是用户业务描述的高度抽象,来源于业务需求的描述,同时又可以帮助用户和需求分析人员更好的理解业务需求。
- 数据库逻辑模型涉及涉及到数据库的具体实现,而领域模型与数据库的具体实现没有很大的联系。