[テンプレ]論理データモデル仕様書

関連テンプレ構成
テンプレート
# 論理データモデル

## テーブル一覧

| No | エンティティ名 | 論理名 | ドメイン | 概要 |
|----|--------------|--------|---------|------|
| 1 | Member | 会員 | 会員管理 | システム利用者の会員情報 |
| 2 | MemberStatus | 会員ステータス | 会員管理 | 会員ランク(BRONZE/SILVER/GOLD/PLATINUM|
| 3 | Order | 注文 | 注文管理 | 会員が行った注文の基本情報 |
| 4 | OrderItem | 注文明細 | 注文管理 | 注文に含まれる商品と数量 |
| 5 | Product | 商品 | 商品管理 | 販売商品のマスタ情報 |
| 6 | Category | カテゴリ | 商品管理 | 商品分類カテゴリ |
| 7 | Inventory | 在庫 | 商品管理 | 商品の在庫数と状態 |
| 8 | Payment | 決済 | 注文管理 | 注文に対する決済情報 |

---

## テーブル定義

### Member(会員)

| 項目 | 内容 |
|------|------|
| **エンティティ名** | Member |
| **論理名** | 会員 |
| **主キー** | member_id |
| **一意性の意味** | システム内で会員を一意に識別する。会員登録時に自動採番される。 |
| **レコード粒度** | 最新のみ。過去のステータス変更は別テーブル(MemberStatusHistory)で管理。 |

### Order(注文)

| 項目 | 内容 |
|------|------|
| **エンティティ名** | Order |
| **論理名** | 注文 |
| **主キー** | order_id |
| **一意性の意味** | 会員が行った各注文を一意に識別する。注文作成時に自動採番される。 |
| **レコード粒度** | 最新のみ。注文ステータスの変更履歴は別途管理可能。 |

---

### 属性定義(論理設計レベル)

#### Member(会員)属性定義

| 属性名 | 論理名 | データ型(論理) | 桁数・制限 | 必須 | 業務ルール |
|--------|--------|----------------|-----------|------|----------|
| member_id | 会員ID | 文字列 | 20文字 || システム採番、変更不可 |
| email | メールアドレス | 文字列 | 255文字 || 一意制約、RFC5322準拠 |
| name | 氏名 | 文字列 | 100文字 || - |
| member_status | 会員ステータス | 列挙型 | BRONZE/SILVER/GOLD/PLATINUM || 累計購入金額で自動更新 |
| registered_at | 登録日時 | 日時 | - || 登録時の現在日時を設定 |
| status_updated_at | ステータス更新日時 | 日時 | - | - | ステータス変更時に更新 |

#### Order(注文)属性定義

| 属性名 | 論理名 | データ型(論理) | 桁数・制限 | 必須 | 業務ルール |
|--------|--------|----------------|-----------|------|----------|
| order_id | 注文ID | 文字列 | 20文字 || システム採番、変更不可 |
| member_id | 会員ID | 文字列 | 20文字 || 外部キー(Member) |
| order_date | 注文日時 | 日時 | - || 注文確定時の現在日時 |
| total_amount | 合計金額 | 数値 | 整数部8桁、小数部2|| 0以上、OrderItemの合計と一致 |
| order_status | 注文ステータス | 列挙型 | PENDING/CONFIRMED/SHIPPED/DELIVERED/CANCELLED || ステータス遷移ルールあり |

---

### 論理ER```mermaid
erDiagram
    Member ||--o{ Order : "1:N"
    Member ||--o{ MemberStatusHistory : "1:N"
    Order ||--|{ OrderItem : "1:N"
    Order ||--|| Payment : "1:1"
    OrderItem }o--|| Product : "N:1"
    Product }o--|| Category : "N:1"
    Product ||--|| Inventory : "1:1"
    
    Member {
        string member_id PK
        string email UK
        string name
        enum member_status
        datetime registered_at
        datetime status_updated_at
    }
    
    Order {
        string order_id PK
        string member_id FK
        datetime order_date
        decimal total_amount
        enum order_status
    }
    
    OrderItem {
        string order_item_id PK
        string order_id FK
        string product_id FK
        int quantity
        decimal unit_price
    }
    
    Product {
        string product_id PK
        string category_id FK
        string product_name
        decimal price
    }
```

---

### 整合性ルール

- 外部キーは参照先エンティティに必ず存在すること
- 注文の合計金額は注文明細の小計合計と一致すること
- 注文確定時、在庫数量は注文数量以上であること
- 決済金額は注文の合計金額と一致すること

---
プレビュー

論理データモデル

テーブル一覧

No エンティティ名 論理名 ドメイン 概要
1 Member 会員 会員管理 システム利用者の会員情報
2 MemberStatus 会員ステータス 会員管理 会員ランク(BRONZE/SILVER/GOLD/PLATINUM)
3 Order 注文 注文管理 会員が行った注文の基本情報
4 OrderItem 注文明細 注文管理 注文に含まれる商品と数量
5 Product 商品 商品管理 販売商品のマスタ情報
6 Category カテゴリ 商品管理 商品分類カテゴリ
7 Inventory 在庫 商品管理 商品の在庫数と状態
8 Payment 決済 注文管理 注文に対する決済情報

テーブル定義

Member(会員)
項目 内容
エンティティ名 Member
論理名 会員
主キー member_id
一意性の意味 システム内で会員を一意に識別する。会員登録時に自動採番される。
レコード粒度 最新のみ。過去のステータス変更は別テーブル(MemberStatusHistory)で管理。
Order(注文)
項目 内容
エンティティ名 Order
論理名 注文
主キー order_id
一意性の意味 会員が行った各注文を一意に識別する。注文作成時に自動採番される。
レコード粒度 最新のみ。注文ステータスの変更履歴は別途管理可能。

属性定義(論理設計レベル)
Member(会員)属性定義
属性名 論理名 データ型(論理) 桁数・制限 必須 業務ルール
member_id 会員ID 文字列 20文字 システム採番、変更不可
email メールアドレス 文字列 255文字 一意制約、RFC5322準拠
name 氏名 文字列 100文字 -
member_status 会員ステータス 列挙型 BRONZE/SILVER/GOLD/PLATINUM 累計購入金額で自動更新
registered_at 登録日時 日時 - 登録時の現在日時を設定
status_updated_at ステータス更新日時 日時 - - ステータス変更時に更新
Order(注文)属性定義
属性名 論理名 データ型(論理) 桁数・制限 必須 業務ルール
order_id 注文ID 文字列 20文字 システム採番、変更不可
member_id 会員ID 文字列 20文字 外部キー(Member)
order_date 注文日時 日時 - 注文確定時の現在日時
total_amount 合計金額 数値 整数部8桁、小数部2桁 0以上、OrderItemの合計と一致
order_status 注文ステータス 列挙型 PENDING/CONFIRMED/SHIPPED/DELIVERED/CANCELLED ステータス遷移ルールあり

論理ER図
erDiagram
    Member ||--o{ Order : "1:N"
    Member ||--o{ MemberStatusHistory : "1:N"
    Order ||--|{ OrderItem : "1:N"
    Order ||--|| Payment : "1:1"
    OrderItem }o--|| Product : "N:1"
    Product }o--|| Category : "N:1"
    Product ||--|| Inventory : "1:1"

    Member {
        string member_id PK
        string email UK
        string name
        enum member_status
        datetime registered_at
        datetime status_updated_at
    }

    Order {
        string order_id PK
        string member_id FK
        datetime order_date
        decimal total_amount
        enum order_status
    }

    OrderItem {
        string order_item_id PK
        string order_id FK
        string product_id FK
        int quantity
        decimal unit_price
    }

    Product {
        string product_id PK
        string category_id FK
        string product_name
        decimal price
    }

整合性ルール
  • 外部キーは参照先エンティティに必ず存在すること
  • 注文の合計金額は注文明細の小計合計と一致すること
  • 注文確定時、在庫数量は注文数量以上であること
  • 決済金額は注文の合計金額と一致すること