LoginSignup
0
0

ホテル予約システムの設計

Last updated at Posted at 2023-12-19

はじめに

Laravelの学習を目的にホテル予約システムの作成をしました。これは設計段階の備忘録になります。

要件定義(管理画面)

ホテル予約システムに必要な要件を書き出します

ユーザー管理(マスターアカウント)

  • ユーザー情報を閲覧、追加、編集、削除できる機能(CRUD)
  • ユーザーアカウントの権限設定(管理者、スタッフなど)

客室管理

  • 客室情報の閲覧、追加、編集、削除できる機能(CRUD)
  • 料金設定、利用可能数、部屋タイプなどの設定管理機能

予約管理

  • 予約情報の一覧表示、予約詳細表示、変更、キャンセル(CRUD)

料金設定

  • 料金プランの管理機能
  • セット料金、割引、限定商品などの登録管理(CRUD)

通知機能

  • 予約を実施した場合の通知
  • ユーザーからキャンセルされた場合の通知

セキュリティ

  • システムを守るためのセキュリティ機能

詳細設計

ユーザー画面

スクリーンショット 2023-12-18 14.53.39.png

管理者画面

スクリーンショット 2023-12-18 15.00.14.png

それぞれCRUD機能を実装

スクリーンショット 2023-12-18 15.01.39.png

データベース設計について

上記の機能に必要なテーブルを記述します

users(ユーザー)テーブル

  • ユーザーの基本情報を記述します
    (ユーザーID,名前,メールアドレス,パスワードなど)
  • ユーザーの権限
    (管理ユーザー,一般ユーザーの役割を示すフィールド)

rooms(客室)テーブル

  • 客室に関する情報を記述します
    (部屋ID,部屋タイプ,料金,設備,利用可能数など)

reservations(予約)テーブル

  • 予約に関する情報
    (予約ID,ユーザーID,部屋,予約日,チェックイン,チェックアウト)

reviews(レビュー)テーブル

  • レビューや評価に関する情報
    (レビューID,ユーザーID,部屋ID,評価,コメントなど)

リレーション関係のテーブルについて

users(ユーザー)と reservations(予約)

  • 一般ユーザーアカウントと予約情報を関連付けます

rooms(客室)と reservations(予約)

  • 部屋と予約情報を関連付けします

テーブルについて

Users Table

Column Data Type Description
User ID INT ユーザーの一意の識別子
Name VARCHAR ユーザーの名前
Email VARCHAR ユーザーのメールアドレス
Password VARCHAR パスワードのハッシュまたは暗号化
Role VARCHAR ユーザーの役割や権限を示すフィールド

Rooms Table

Column Data Type Description
Room ID INT 客室の一意の識別子
Room Type VARCHAR 部屋の種類やタイプ
Price DECIMAL 部屋の料金
Amenities VARCHAR 部屋の設備や提供されるもの
Available Count INT 利用可能な部屋の数

Reservations Table

Column Data Type Description
Reservation ID INT 予約の一意の識別子
User ID INT 予約をしたユーザーのID
Room ID INT 予約された部屋のID
Reservation Date DATE 予約が行われた日付
Check-in Date DATE チェックインの日付
Check-out Date DATE チェックアウトの日付
Payment Info VARCHAR 支払いに関する情報

Reviews Table

Column Data Type Description
Review ID INT レビューの一意の識別子
User ID INT レビューをしたユーザーのID
Room ID INT レビュー対象の部屋のID
Rating INT レビューの評価
Comment TEXT レビューのコメントや内容
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0