プロジェクト

全般

プロフィール

バグ #506

未完了

詳細データベーススキーマ定義

Redmine Admin さんが8日前に追加.

ステータス:
新規
優先度:
高め
担当者:
-
開始日:
2025-06-11
期日:
進捗率:

0%

予定工数:

説明

概要

レジュメ変換システムのデータベーススキーマを詳細に定義します。テーブル構造、カラム定義、インデックス、リレーションシップなどを明確に規定します。

作業内容

  1. 詳細テーブル定義

    • users テーブル

      • id: シリアル主キー
      • email: 一意のメールアドレス
      • password: ハッシュ化されたパスワード
      • created_at: タイムスタンプ
      • その他のユーザープロファイル情報
    • resumes テーブル

      • id: シリアル主キー
      • user_id: 外部キー(users.id参照)
      • title: レジュメタイトル
      • content: JSONBデータ型(解析結果)
      • raw_text: テキスト型(元の抽出テキスト)
      • created_at, updated_at: タイムスタンプ
    • generated_documents テーブル

      • id: シリアル主キー
      • resume_id: 外部キー(resumes.id参照)
      • type: 文書タイプ('resume'または'cv')
      • content: JSONBデータ型(メタデータ)
      • html_content: テキスト型(HTMLコンテンツ)
      • created_at: タイムスタンプ
    • prompt_history テーブル

      • id: シリアル主キー
      • resume_id: 外部キー(resumes.id参照)
      • document_type: 文書タイプ
      • prompt_text: テキスト型(プロンプト内容)
      • response: テキスト型(AI応答)
      • created_at: タイムスタンプ
  2. リレーションシップ定義

    • ユーザーとレジュメの1対多関係
    • レジュメと生成文書の1対多関係
    • レジュメとプロンプト履歴の1対多関係
  3. インデックス設計

    • users.email: 一意インデックス
    • resumes.user_id: インデックス
    • generated_documents.resume_id: インデックス
    • prompt_history.resume_id: インデックス
    • 各テーブルの適切な複合インデックス
  4. 制約定義

    • 外部キー制約
    • NOT NULL制約
    • 一意性制約
    • CHECK制約
  5. マイグレーションスクリプト作成

    • 初期スキーマ作成スクリプト
    • 更新用マイグレーションスクリプト
    • ロールバックスクリプト

成果物

  • 詳細なER図
  • SQLテーブル定義スクリプト
  • インデックス定義スクリプト
  • 制約定義スクリプト
  • マイグレーションスクリプト

技術スタック

  • PostgreSQL
  • Knex.js(マイグレーション)
  • ERD設計ツール

参照

  • 親チケット: #470(DB設計・バックエンド基盤構築)
  • 関連チケット: #481(データモデル設計)
  • 関連チケット: #484(データベース環境構築)

表示するデータがありません

他の形式にエクスポート: Atom PDF