[テンプレ]概念データモデル仕様書

関連テンプレ構成
テンプレート
# 概念データモデル

## ドメイン構造

本システムでは、以下のドメイン(業務領域)で情報を扱う。

```mermaid
graph TB
    subgraph 会員管理ドメイン
        A[会員情報]
        B[会員ステータス]
        C[会員履歴]
    end
    
    subgraph 商品管理ドメイン
        D[商品情報]
        E[カテゴリ情報]
        F[在庫情報]
    end
    
    subgraph 注文管理ドメイン
        G[注文情報]
        H[注文明細]
        I[決済情報]
    end
    
    A --> G
    D --> H
    G --> H
    G --> I
    D --> F
    E --> D
```

## ドメイン定義

| ドメイン名 | 責務 | 境界 |
|----------|------|------|
| 会員管理 | 会員の登録、認証、ステータス管理 | 会員の個人情報と権限に関する情報のみを管理 |
| 商品管理 | 商品マスタ、在庫、カテゴリの管理 | 商品の基本情報と在庫状態の管理。価格履歴は含むが販売実績は含まない |
| 注文管理 | 注文受付、決済、配送管理 | 注文から決済完了までの一連のプロセスを管理 |

---

## エンティティ(ドメインモデル)一覧

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

---

## 概念ER```mermaid
erDiagram
    Member ||--o{ Order : "注文する"
    Member ||--|| MemberStatus : "持つ"
    Order ||--|{ OrderItem : "含む"
    OrderItem }o--|| Product : "参照する"
    Product }o--|| Category : "属する"
    Product ||--|| Inventory : "在庫を持つ"
    Order ||--|| Payment : "決済される"
```

---

## 属性一覧(バリューオブジェクト一覧)

| バリューオブジェクト名 | データ型 | 制約 | 説明 |
|-------------------|---------|------|------|
| MemberId | 文字列 | 20文字固定、英数字 | 会員を一意に識別するID |
| Email | 文字列 | RFC5322準拠 | メールアドレス |
| MemberStatusType | 列挙型 | BRONZE/SILVER/GOLD/PLATINUM | 会員ステータス区分 |
| OrderId | 文字列 | 20文字固定、英数字 | 注文を一意に識別するID |
| Money | 数値 | 小数点以下2桁、0以上 | 金額(税込) |
| Quantity | 整数 | 1以上 | 数量 |
| ProductId | 文字列 | 20文字固定、英数字 | 商品を一意に識別するID |

---

## データ制約・業務ルール一覧

| ID | ルール名 | 制約内容 | 対象エンティティ |
|----|---------|---------|---------------|
| BP-001 | 金額非負制約 | 金額項目は0以上でなければならない | Order, OrderItem, Payment |
| BP-002 | 会員ステータス遷移 | ステータスは累計購入金額に基づき自動更新される | Member |
| BP-003 | 在庫引当 | 注文確定時に在庫を引き当て、在庫不足の場合はエラー | Inventory, OrderItem |
| BP-004 | 注文キャンセル制限 | 配送済み(SHIPPED)以降はキャンセル不可 | Order |
| BP-005 | メールアドレス一意性 | 同一メールアドレスで複数会員登録不可 | Member |

---
プレビュー

概念データモデル

ドメイン構造

本システムでは、以下のドメイン(業務領域)で情報を扱う。

graph TB
    subgraph 会員管理ドメイン
        A[会員情報]
        B[会員ステータス]
        C[会員履歴]
    end
    
    subgraph 商品管理ドメイン
        D[商品情報]
        E[カテゴリ情報]
        F[在庫情報]
    end
    
    subgraph 注文管理ドメイン
        G[注文情報]
        H[注文明細]
        I[決済情報]
    end
    
    A --> G
    D --> H
    G --> H
    G --> I
    D --> F
    E --> D

ドメイン定義

ドメイン名 責務 境界
会員管理 会員の登録、認証、ステータス管理 会員の個人情報と権限に関する情報のみを管理
商品管理 商品マスタ、在庫、カテゴリの管理 商品の基本情報と在庫状態の管理。価格履歴は含むが販売実績は含まない
注文管理 注文受付、決済、配送管理 注文から決済完了までの一連のプロセスを管理

エンティティ(ドメインモデル)一覧

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

概念ER図

erDiagram
    Member ||--o{ Order : "注文する"
    Member ||--|| MemberStatus : "持つ"
    Order ||--|{ OrderItem : "含む"
    OrderItem }o--|| Product : "参照する"
    Product }o--|| Category : "属する"
    Product ||--|| Inventory : "在庫を持つ"
    Order ||--|| Payment : "決済される"

属性一覧(バリューオブジェクト一覧)

バリューオブジェクト名 データ型 制約 説明
MemberId 文字列 20文字固定、英数字 会員を一意に識別するID
Email 文字列 RFC5322準拠 メールアドレス
MemberStatusType 列挙型 BRONZE/SILVER/GOLD/PLATINUM 会員ステータス区分
OrderId 文字列 20文字固定、英数字 注文を一意に識別するID
Money 数値 小数点以下2桁、0以上 金額(税込)
Quantity 整数 1以上 数量
ProductId 文字列 20文字固定、英数字 商品を一意に識別するID

データ制約・業務ルール一覧

ID ルール名 制約内容 対象エンティティ
BP-001 金額非負制約 金額項目は0以上でなければならない Order, OrderItem, Payment
BP-002 会員ステータス遷移 ステータスは累計購入金額に基づき自動更新される Member
BP-003 在庫引当 注文確定時に在庫を引き当て、在庫不足の場合はエラー Inventory, OrderItem
BP-004 注文キャンセル制限 配送済み(SHIPPED)以降はキャンセル不可 Order
BP-005 メールアドレス一意性 同一メールアドレスで複数会員登録不可 Member