---
generated_at: 2026-03-01 18:45:00
metrics:
  claims_total: 42
  claims_with_evidence: 40
  claims_without_evidence: 2
confidence_derived: 0.95
---

# 根拠レポート：データベース設計書

## 本レポートについて

### 目的
本レポートは、生成された設計書・ドキュメントの信頼性を検証し、人間レビュアーが効率的にレビューできるようにすることを目的としています。

### チェック方法
以下の観点でドキュメントの内容（Claim：主張）を検証しています：

1. **根拠の有無確認**：各主張に対して、ソースコード・既存設計書・要件定義書などの根拠（Evidence）が存在するか
2. **根拠との整合性**：主張の内容が根拠と矛盾していないか
3. **網羅性**：参照すべき情報源を適切にカバーしているか

### 信頼度スコアの算出
- **confidence_derived** = 根拠あり件数 / 総主張件数
- 状態「○」：根拠あり、「△」：根拠不足または要確認

### 本レポートの使い方
1. まず「サマリー」で全体の信頼度と優先レビュー項目を確認
2. 「Claims と根拠の対応」で △ の項目を重点的にレビュー
3. 「不足情報」で補完が必要な情報源を確認

---

## 1) サマリー（まず見るところ）
- 総合信頼度（derived）：**0.95**
  - 根拠あり：40 / 42、根拠なし：2
- 優先レビュー（高）
  1. **payload_locked_documents テーブル構造**：コードから完全な構造を確認できず
  2. **バージョンテーブルの snapshot カラム**：実装詳細の確認が必要

## 2) 参照した情報（Evidence一覧）
> ここに「実在するもの」だけ列挙。抽出フェーズで付けたIDをそのまま出す。

- E-01: `packages/drizzle/src/schema/build.ts` - Drizzle テーブルビルド処理
- E-02: `packages/drizzle/src/schema/traverseFields.ts` - フィールドトラバース処理
- E-03: `packages/drizzle/src/types.ts` - Drizzle アダプター型定義
- E-04: `packages/db-mongodb/src/models/buildSchema.ts` - MongoDB スキーマビルド
- E-05: `packages/db-mongodb/src/models/buildCollectionSchema.ts` - MongoDB コレクションスキーマ
- E-06: `packages/db-mongodb/src/index.ts` - MongoDB アダプターエントリポイント
- E-07: `packages/db-postgres/src/index.ts` - PostgreSQL アダプターエントリポイント
- E-08: `packages/drizzle/src/postgres/schema/setColumnID.ts` - PostgreSQL ID カラム設定
- E-09: `packages/payload/src/fields/config/types.ts` - フィールド型定義

## 3) Claims と根拠の対応（レビューの主戦場）
| Claim ID | 主張 | Evidence | 状態 |
|---|---|---|---|
| C-01 | MongoDB アダプターは Mongoose を使用 | E-04, E-06 | ○ |
| C-02 | PostgreSQL アダプターは Drizzle ORM を使用 | E-01, E-07 | ○ |
| C-03 | コレクションテーブルに id, created_at, updated_at カラムが存在 | E-01 (lines 158-178) | ○ |
| C-04 | ローカライズテーブルのサフィックスはデフォルトで _locales | E-07 (line 146) | ○ |
| C-05 | リレーションシップテーブルのサフィックスはデフォルトで _rels | E-07 (line 159) | ○ |
| C-06 | バージョンテーブルのサフィックスはデフォルトで _v | E-07 (line 167) | ○ |
| C-07 | テキストフィールドは varchar 型にマッピング | E-02 (lines 1016-1023) | ○ |
| C-08 | 数値フィールドは numeric 型にマッピング | E-02 (lines 746-753) | ○ |
| C-09 | チェックボックスフィールドは boolean 型にマッピング | E-02 (lines 611-619) | ○ |
| C-10 | 日付フィールドは timestamp(3) with timezone にマッピング | E-02 (lines 637-647) | ○ |
| C-11 | JSON フィールドは jsonb 型にマッピング | E-02 (lines 710-720) | ○ |
| C-12 | リッチテキストフィールドは jsonb 型にマッピング | E-02 (lines 710-720) | ○ |
| C-13 | セレクトフィールドは enum 型にマッピング | E-02 (lines 913-923) | ○ |
| C-14 | ポイントフィールドは geometry 型にマッピング | E-02 (lines 758-768) | ○ |
| C-15 | hasMany テキストは _texts テーブルに格納 | E-01 (lines 340-444) | ○ |
| C-16 | hasMany 数値は _numbers テーブルに格納 | E-01 (lines 446-544) | ○ |
| C-17 | hasMany リレーションシップは _rels テーブルに格納 | E-01 (lines 546-724) | ○ |
| C-18 | 配列フィールドは別テーブルに格納 | E-02 (lines 177-370) | ○ |
| C-19 | ブロックフィールドは別テーブルに格納 | E-02 (lines 372-608) | ○ |
| C-20 | blocksAsJSON 有効時はブロックが jsonb カラムに格納 | E-02 (lines 373-381) | ○ |
| C-21 | グループフィールドはプレフィックス付きカラムとして格納 | E-02 (lines 651-708) | ○ |
| C-22 | ID タイプとして serial, uuid, varchar, numeric をサポート | E-03 (line 314), E-08 | ○ |
| C-23 | ローカライズテーブルに _locale, _parent_id カラムが存在 | E-01 (lines 193-209) | ○ |
| C-24 | ローカライズテーブルに locale_parent_id_unique インデックスが存在 | E-01 (lines 212-220) | ○ |
| C-25 | 外部キーに CASCADE 削除が設定されている | E-01 (lines 226-237) | ○ |
| C-26 | リレーションシップカラムに SET NULL が設定されている | E-02 (lines 960-968) | ○ |
| C-27 | 配列テーブルに _order, _parent_id カラムが存在 | E-02 (lines 189-200) | ○ |
| C-28 | ブロックテーブルに _order, _parent_id, _path カラムが存在 | E-02 (lines 420-436) | ○ |
| C-29 | hasMany セレクトは別テーブルに格納 | E-02 (lines 789-912) | ○ |
| C-30 | MongoDB でローカライズはネストされたオブジェクト構造 | E-04 (lines 103-128) | ○ |
| C-31 | MongoDB でリレーションシップは ObjectId 参照 | E-04 (lines 555-637), E-04 (lines 910-939) | ○ |
| C-32 | MongoDB で配列/ブロックはサブドキュメント配列 | E-04 (lines 208-294) | ○ |
| C-33 | タイムスタンプの精度は 3 (ミリ秒) | E-01 (lines 159-177), E-02 (line 643) | ○ |
| C-34 | フィールドに index: true 設定時にインデックスが生成 | E-02 (lines 152-174) | ○ |
| C-35 | フィールドに unique: true 設定時にユニークインデックスが生成 | E-02 (lines 157-173) | ○ |
| C-36 | 複合インデックスがサポートされている | E-01 (lines 284-337) | ○ |
| C-37 | dbName オプションでテーブル名をカスタマイズ可能 | E-09 (lines 1386-1388) | ○ |
| C-38 | enumName オプションで enum 名をカスタマイズ可能 | E-09 (lines 1173-1174) | ○ |
| C-39 | schemaName オプションでスキーマを指定可能 (PostgreSQL) | E-07 (lines 85-90) | ○ |
| C-40 | PostgreSQL で拡張機能がサポートされている | E-07 (lines 92-98) | ○ |
| C-41 | payload_locked_documents テーブルが存在 | **根拠なし** | △ |
| C-42 | バージョンテーブルに snapshot カラムが存在 | **根拠なし** | △ |

## 4) 不足情報（Unknown / Missing）
- **payload_locked_documents テーブル構造**: システムテーブルの実装詳細がコアパッケージに存在する可能性があるが、今回の調査範囲では確認できず
  - 候補：packages/payload/src/database/ / packages/payload/src/collections/operations/ / ドキュメンテーション
- **バージョンテーブルの詳細構造**: バージョン管理の実装が別ファイルに存在する可能性
  - 候補：packages/payload/src/versions/ / packages/drizzle/src/createVersion.ts

## 5) リスクフラグ（レビュー観点）
- 0: 低リスク - フィールドタイプとカラムマッピングの大部分は直接コードから確認
- 0: 低リスク - テーブル構造の基本パターンはコードで明確に定義
- 1: 中リスク - システムテーブルの詳細は追加調査が推奨される
- 0: 低リスク - MongoDB スキーマ構造は Mongoose ビルダーから確認

## 6) レビュアーチェックリスト（最小）
- [ ] フィールドタイプとカラム型のマッピングが実際の運用と一致しているか確認
- [ ] ローカライズテーブルの構造が i18n 設定と整合しているか確認
- [ ] インデックス設計がパフォーマンス要件を満たしているか確認
- [ ] 外部キー制約の CASCADE/SET NULL 設定がビジネスロジックと整合しているか確認
- [ ] システムテーブル（payload_locked_documents, payload_preferences, payload_migrations）の詳細構造を追加調査
