首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

系统设计与分析 作业5

作业总览

1、 领域建模

  • a. 阅读 Asg_RH 文档,按用例构建领域模型。
    • 按 Task2 要求,请使用工具 UMLet,截图格式务必是 png 并控制尺寸
    • 说明:请不要受 PCMEF 层次结构影响。你需要识别实体(E)和 中介实体(M,也称状态实体)
      • 在单页面应用(如 vue)中,E 一般与数据库构建有关, M 一般与 store 模式 有关
      • 在 java web 应用中,E 一般与数据库构建有关, M 一般与 session 有关
  • b. 数据库建模(E-R 模型)

1.a 构建领域模型

1.b 数据库建模(E-R 模型)

1.b.1 建立模型

1.b.2 导出数据库代码

代码语言:javascript
复制
-- 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;

2. 数据库逻辑模型 与 领域模型 的异同

相同点:两者都是抽象概念,都将业务的各概念,关系等抽象化,并用图表示出来,将需求抽象为可视化的概念关系。 不同点:领域模型不需要考虑太多的实现细节,更注重的是表达实体以及其之间的关系,还引进了中介实体的概念而数据库逻辑模型则是对领域模型的进一步细化,需要给出每个字段的具体细节,并用于生成代码。

下一篇
举报
领券