领域建模
a. 阅读 Asg_RH 文档,按用例构建领域模型。
按 Task2 要求,请使用工具 UMLet,截图格式务必是 png 并控制尺寸
数据库建模(E-R 模型)
按 Task 3 要求,给出系统的 E-R 模型(数据逻辑模型)。
使用的是PowerDesigner。
导出SQL代码:
/*==============================================================*/
/* DBMS name: MySQL 5.0 */
/* Created on: 2018-04-29 20:23:21 */
/*==============================================================*/
drop table if exists basket;
drop table if exists city;
drop table if exists hotel;
drop table if exists location;
drop table if exists payment;
drop table if exists region;
drop table if exists reservation;
drop table if exists room;
drop table if exists room_reserve;
drop table if exists town;
drop table if exists user;
/*==============================================================*/
/* Table: basket */
/*==============================================================*/
create table basket
(
userId int not null,
basketId int not null,
reservationId int,
primary key (basketId)
);
/*==============================================================*/
/* Table: city */
/*==============================================================*/
create table city
(
id int not null,
name varchar(20) not null,
isCapital bool not null,
primary key (id)
);
/*==============================================================*/
/* Table: hotel */
/*==============================================================*/
create table hotel
(
id varchar(15) not null,
code bit(10),
hot int,
address char(10),
"star-level" char(10),
primary key (id)
);
/*==============================================================*/
/* Table: location */
/*==============================================================*/
create table location
(
code bit(10) not null,
id int,
cit_id int,
tow_id int,
name varchar(15) not null,
"hot-index" int,
primary key (code)
);
/*==============================================================*/
/* Table: payment */
/*==============================================================*/
create table payment
(
reservationId int not null,
isPayed bool not null,
primary key (reservationId)
);
/*==============================================================*/
/* Table: region */
/*==============================================================*/
create table region
(
id int not null,
name varchar(10) not null,
primary key (id)
);
/*==============================================================*/
/* Table: reservation */
/*==============================================================*/
create table reservation
(
reservationId int not null,
userId int,
"room-count" int not null,
state varchar(10),
primary key (reservationId)
);
/*==============================================================*/
/* Table: room */
/*==============================================================*/
create table room
(
id varchar(20) not null,
hot_id varchar(15),
isAvailable bool not null,
date date not null,
"room-type" varchar(10) not null,
"list-price" int not null,
description text,
primary key (id)
);
/*==============================================================*/
/* Table: room_reserve */
/*==============================================================*/
create table room_reserve
(
roomId varchar(20) not null,
reservationId int not null,
isPayyed bool not null,
"check-in" date,
"check-out" date,
primary key (roomId, reservationId, isPayyed)
);
/*==============================================================*/
/* Table: town */
/*==============================================================*/
create table town
(
id int not null,
name varchar(20) not null,
primary key (id)
);
/*==============================================================*/
/* Table: user */
/*==============================================================*/
create table user
(
userId int not null,
name varchar(20) not null,
phone varchar(11) not null,
primary key (userId)
);
alter table basket add constraint FK_Reference_2 foreign key (userId)
references user (userId) on delete restrict on update restrict;
alter table basket add constraint FK_Reference_3 foreign key (reservationId)
references reservation (reservationId) on delete restrict on update restrict;
alter table hotel add constraint FK_Reference_4 foreign key (code)
references location (code) on delete restrict on update restrict;
alter table location add constraint FK_Reference_10 foreign key (tow_id)
references town (id) on delete restrict on update restrict;
alter table location add constraint FK_Reference_8 foreign key (id)
references region (id) on delete restrict on update restrict;
alter table location add constraint FK_Reference_9 foreign key (cit_id)
references city (id) on delete restrict on update restrict;
alter table payment add constraint FK_Reference_11 foreign key (reservationId)
references reservation (reservationId) on delete restrict on update restrict;
alter table reservation add constraint FK_Reference_5 foreign key (userId)
references user (userId) on delete restrict on update restrict;
alter table room add constraint FK_Reference_1 foreign key (hot_id)
references hotel (id) on delete restrict on update restrict;
alter table room_reserve add constraint FK_Reference_6 foreign key (roomId)
references room (id) on delete restrict on update restrict;
alter table room_reserve add constraint FK_Reference_7 foreign key (reservationId)
references reservation (reservationId) on delete restrict on update restrict;
简单叙说 数据库逻辑模型 与 领域模型 的异同
领域模型是对领域内的概念类或现实世界中对象的可视化表示。又称概念模型、领域对象模型、分析对象模型。它专注于分析问题领域本身,发掘重要的业务领域概念,并建立业务领域概念之间的关系。
数据库建模:在设计数据库时,对现实世界进行分析、抽象、并从中找出内在联系,进而确定数据库的结构,这一过程就称为数据库建模。它主要包括两部分内容:确定最基本的数据结构;对约束建模。
不同之处:领域模型更注重的是业务领域的内容,而数据库建模更注重实体和实体之间的关系。
相同之处:都是人们用来分析问题解决问题借助的工具。