热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

系统分析与设计——homework5

领域建模a.阅读Asg_RH文档,按用例构建领域模型。按Task2要求,请使用工具UMLet,截图格式务必是png并控制尺寸说明:请不要受PCMEF层次结构影

领域建模

a. 阅读 Asg_RH 文档,按用例构建领域模型。

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

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

  • 按 Task 3 要求,给出系统的 E-R 模型(数据逻辑模型)
  • 建模工具 PowerDesigner(简称PD) 或开源工具 OpenSystemArchitect
  • 不负责的链接 http://www.cnblogs.com/mcgrady/archive/2013/05/25/3098588.html

这里写图片描述

  • 导出 Mysql 物理数据库的脚本
-- -----------------------------------------------------
-- Table `sakila`.`Location`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `sakila`.`Location` ( `LocationID` INT NOT NULL, `LocationName` VARCHAR(45) NULL, `Hot` INT NULL, PRIMARY KEY (`LocationID`)) ENGINE = InnoDB;


-- -----------------------------------------------------
-- Table `sakila`.`Hotel`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `sakila`.`Hotel` ( `HotelID` INT NOT NULL, `Name` VARCHAR(45) NULL, `Location_LocationID` INT NOT NULL, PRIMARY KEY (`HotelID`), INDEX `fk_Hotel_Location1_idx` (`Location_LocationID` ASC), CONSTRAINT `fk_Hotel_Location1` FOREIGN KEY (`Location_LocationID`) REFERENCES `sakila`.`Location` (`LocationID`) ON DELETE NO ACTION ON UPDATE NO ACTION) ENGINE = InnoDB;


-- -----------------------------------------------------
-- Table `sakila`.`Room`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `sakila`.`Room` ( `RoomID` INT NOT NULL, `Type` VARCHAR(45) NULL, `IsAvailable` TINYINT(1) NULL, `Date` DATE NULL, `Hotel_HotelID` INT NOT NULL, PRIMARY KEY (`RoomID`), INDEX `fk_Room_Hotel1_idx` (`Hotel_HotelID` ASC), CONSTRAINT `fk_Room_Hotel1` FOREIGN KEY (`Hotel_HotelID`) REFERENCES `sakila`.`Hotel` (`HotelID`) ON DELETE NO ACTION ON UPDATE NO ACTION) ENGINE = InnoDB;


-- -----------------------------------------------------
-- Table `sakila`.`Traveler`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `sakila`.`Traveler` ( `UserID` INT NOT NULL, `Username` VARCHAR(45) NULL, `Password` VARCHAR(45) NULL, PRIMARY KEY (`UserID`)) ENGINE = InnoDB;


-- -----------------------------------------------------
-- Table `sakila`.`ReservationRecord`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `sakila`.`ReservationRecord` ( `ReservationID` INT NOT NULL, `RoomID` INT NULL, `Date` DATE NULL, `PayMethod` VARCHAR(45) NULL, `Room_RoomID` INT NOT NULL, `Traveler_UserID` INT NOT NULL, PRIMARY KEY (`ReservationID`), INDEX `fk_ReservationRecord_Room1_idx` (`Room_RoomID` ASC), INDEX `fk_ReservationRecord_Traveler1_idx` (`Traveler_UserID` ASC), CONSTRAINT `fk_ReservationRecord_Room1` FOREIGN KEY (`Room_RoomID`) REFERENCES `sakila`.`Room` (`RoomID`) ON DELETE NO ACTION ON UPDATE NO ACTION, CONSTRAINT `fk_ReservationRecord_Traveler1` FOREIGN KEY (`Traveler_UserID`) REFERENCES `sakila`.`Traveler` (`UserID`) ON DELETE NO ACTION ON UPDATE NO ACTION) ENGINE = InnoDB;
  • 简单叙说 数据库逻辑模型 与 领域模型 的异同
    同:数据库模型和领域模型都可以反应一个系统中的实体以及实体之间的对应关系。
    异:领域模型着重于模拟系统在现实生活中的抽象概念,因此对诸如属性域的类型以及实体的识别并不是非常严格,领域模型的意图只是对整个系统中实体的抽象概念的详细描述。数据库模型就需要完全是系统底层数据库设计和实现的一个映射,在表的设计和属性域的类型上就完全需要与底层所使用数据库相对应,并且数据库模型中会舍去一些领域模型中单纯为了连接不同实体,表达不同实体之间关系的中介实体。

推荐阅读
  • android listview OnItemClickListener失效原因
    最近在做listview时发现OnItemClickListener失效的问题,经过查找发现是因为button的原因。不仅listitem中存在button会影响OnItemClickListener事件的失效,还会导致单击后listview每个item的背景改变,使得item中的所有有关焦点的事件都失效。本文给出了一个范例来说明这种情况,并提供了解决方法。 ... [详细]
  • 本文详细介绍了GetModuleFileName函数的用法,该函数可以用于获取当前模块所在的路径,方便进行文件操作和读取配置信息。文章通过示例代码和详细的解释,帮助读者理解和使用该函数。同时,还提供了相关的API函数声明和说明。 ... [详细]
  • GetWindowLong函数
    今天在看一个代码里头写了GetWindowLong(hwnd,0),我当时就有点费解,靠,上网搜索函数原型说明,死活找不到第 ... [详细]
  • 本文介绍了数据库的存储结构及其重要性,强调了关系数据库范例中将逻辑存储与物理存储分开的必要性。通过逻辑结构和物理结构的分离,可以实现对物理存储的重新组织和数据库的迁移,而应用程序不会察觉到任何更改。文章还展示了Oracle数据库的逻辑结构和物理结构,并介绍了表空间的概念和作用。 ... [详细]
  • 本文介绍了使用Java实现大数乘法的分治算法,包括输入数据的处理、普通大数乘法的结果和Karatsuba大数乘法的结果。通过改变long类型可以适应不同范围的大数乘法计算。 ... [详细]
  • HDU 2372 El Dorado(DP)的最长上升子序列长度求解方法
    本文介绍了解决HDU 2372 El Dorado问题的一种动态规划方法,通过循环k的方式求解最长上升子序列的长度。具体实现过程包括初始化dp数组、读取数列、计算最长上升子序列长度等步骤。 ... [详细]
  • CSS3选择器的使用方法详解,提高Web开发效率和精准度
    本文详细介绍了CSS3新增的选择器方法,包括属性选择器的使用。通过CSS3选择器,可以提高Web开发的效率和精准度,使得查找元素更加方便和快捷。同时,本文还对属性选择器的各种用法进行了详细解释,并给出了相应的代码示例。通过学习本文,读者可以更好地掌握CSS3选择器的使用方法,提升自己的Web开发能力。 ... [详细]
  • 本文讨论了如何优化解决hdu 1003 java题目的动态规划方法,通过分析加法规则和最大和的性质,提出了一种优化的思路。具体方法是,当从1加到n为负时,即sum(1,n)sum(n,s),可以继续加法计算。同时,还考虑了两种特殊情况:都是负数的情况和有0的情况。最后,通过使用Scanner类来获取输入数据。 ... [详细]
  • 本文介绍了C#中数据集DataSet对象的使用及相关方法详解,包括DataSet对象的概述、与数据关系对象的互联、Rows集合和Columns集合的组成,以及DataSet对象常用的方法之一——Merge方法的使用。通过本文的阅读,读者可以了解到DataSet对象在C#中的重要性和使用方法。 ... [详细]
  • 本文主要解析了Open judge C16H问题中涉及到的Magical Balls的快速幂和逆元算法,并给出了问题的解析和解决方法。详细介绍了问题的背景和规则,并给出了相应的算法解析和实现步骤。通过本文的解析,读者可以更好地理解和解决Open judge C16H问题中的Magical Balls部分。 ... [详细]
  • 本文介绍了P1651题目的描述和要求,以及计算能搭建的塔的最大高度的方法。通过动态规划和状压技术,将问题转化为求解差值的问题,并定义了相应的状态。最终得出了计算最大高度的解法。 ... [详细]
  • 本文详细介绍了在ASP.NET中获取插入记录的ID的几种方法,包括使用SCOPE_IDENTITY()和IDENT_CURRENT()函数,以及通过ExecuteReader方法执行SQL语句获取ID的步骤。同时,还提供了使用这些方法的示例代码和注意事项。对于需要获取表中最后一个插入操作所产生的ID或马上使用刚插入的新记录ID的开发者来说,本文提供了一些有用的技巧和建议。 ... [详细]
  • 本文介绍了一些Java开发项目管理工具及其配置教程,包括团队协同工具worktil,版本管理工具GitLab,自动化构建工具Jenkins,项目管理工具Maven和Maven私服Nexus,以及Mybatis的安装和代码自动生成工具。提供了相关链接供读者参考。 ... [详细]
  • 本文记录了在vue cli 3.x中移除console的一些采坑经验,通过使用uglifyjs-webpack-plugin插件,在vue.config.js中进行相关配置,包括设置minimizer、UglifyJsPlugin和compress等参数,最终成功移除了console。同时,还包括了一些可能出现的报错情况和解决方法。 ... [详细]
  • VueCLI多页分目录打包的步骤记录
    本文介绍了使用VueCLI进行多页分目录打包的步骤,包括页面目录结构、安装依赖、获取Vue CLI需要的多页对象等内容。同时还提供了自定义不同模块页面标题的方法。 ... [详细]
author-avatar
php.com
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有