系分hw9

練習資源:Asg-RH.pdf

使用 UMLet 建模

  • 1、使用類圖,分別對 Asg_RH 文檔中 Make Reservation 用例以及 Payment 用例開展領域建模。然後,根據上述模型,給出建議的數據表以及主要字段,特別是主鍵和外鍵

    • 注意事項:
      • 對象必須是名詞、特別是技術名詞、報表、描述類的處理;
      • 關聯必須有多重性、部分有名稱與導航方向
      • 屬性要注意計算字段

    Reservations 類圖

    在這裏插入圖片描述

    Payment 類圖

    在這裏插入圖片描述

    • 數據建模,爲了簡化描述僅需要給出表清單,例如:

      • Hotel(ID/Key,Name,LoctionID/Fkey,Address……)

      ​ 下圖的外鍵聯繫主要是通過每個表的id來實現,每個表單僅包含自己的屬性,多餘的屬性由其通過查詢組合來呈現給用戶,如reservation呈現給用戶是有房間信息,用戶信息等,但這些並不是存在reservations的表中,而是通過組合查詢條件成完整的信息呈現給用戶,所以僅包含其他信息的id,從而降低數據庫的冗餘度。

      在這裏插入圖片描述

      use reservation;
      create table traveller(
      	userId char(10),
          username varchar(30),
          passward varchar(32),
          full_name varchar(30),
          email_address	varchar(20),
          primary key(id)
      );
      create table hotel(
      	hid char(10),
      	location varchar(32),
      	stars int,
      	average_price int,
      	name varchar(32),
      	primary key(hid)
      );
      
      create table room(
      	rid char(10),
      	hid char(10),
      	room_type varchar(32),
      	room_name varchar(32),
      	availability bool,
      	primary key(rid),
      	foreign key(hid) references hotel(hid)
      );
      
      create teble credit_card(
      	cid  varchar(10),
      	userId char(10),
      	card_number  varchar(32),
      	bank   varchar(32)
      	primary key(cid),
      	foreign key(userId) references traveller(userId)
      );
      
      create table payment(
      	pid char(10),
      	hid char(10),
      	cid char(10)
      	userId char(10),
      	amount int,
      	status int,
      	primary key(pid),
      	foreign key (userId) references traveller(userId),
      	foreign key (hid) references hotel(hid),
      	foreign key (cid) references credit_card(cid)
      );
      
      
      
      create table reservation(
      	rid varchar(10),
      	userId varchar(10),
      	type varchar(32),
      	roomId varchar(32),
      	num int,
      	price int,
      	status int,
      	start_date date,
      	end_date date,
      	foreign key(userId) references traveller(userId),
      	foreign key(roomId) references room(rid) 
      );
      
  • 2、使用 UML State Model,對每個訂單對象生命週期建模

    • 建模對象: 參考 Asg_RH 文檔, 對 Reservation/Order 對象建模。
    • 建模要求: 參考練習不能提供足夠信息幫助你對訂單對象建模,請參考現在 定旅館 的旅遊網站,儘可能分析圍繞訂單發生的各種情況,直到訂單通過銷售事件(櫃檯銷售)結束訂單。

常見事件有:

  1. 預定旅館
  2. 未支付訂單,取消預定
  3. 對旅館進行排序
  4. 支付訂單,取消預定
  5. 選擇信用卡
  6. 未找到旅館
  7. 信息反饋(所有方法均未找到旅館後使用)

主要狀態有:

  1. 正在查找旅館
  2. 正在選取房間
  3. 待完善並確認信息
  4. 待提交訂單
  5. 待支付訂單
  6. 待入住
  7. 退款中
  8. 已入住

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章