Skip to main content

5. データモデル

5.1 主な管理データ

ユーザー情報

  • 求職者および企業の基本情報、プロフィール、認証情報

インターンシップ情報

  • 日時、業務内容、報酬、募集人数、必要資格などの詳細

評価情報

  • 体験後の相互評価(テキスト形式のコメント、スコア)

5.2 想定テーブル構成例

info
  • ユーザーID(user_id,reviewer_id,reviewee_id,company_id)は、求職者と企業を区別するための共通のID
  • レビュワー(reviewer_id)とレビュイー(reviewee_id)は、user_id ,company_id と同じIDを使用(いずれかが求職者、もう一方が企業)

internships テーブル

インターンシップに関する基本情報を管理する。

カラム名データ型説明
internship_idSERIALインターンシップID(主キー)
company_idINTEGER企業ID(外部キー)
titleVARCHAR(255)インターンシップのタイトル
descriptionTEXTインターンシップの説明
dateDATEインターンシップの日程
locationVARCHAR(255)インターンシップの場所
rewardVARCHAR(100)報酬(円)
required_qualificationsTEXT必要資格
available_spotsINTEGER募集人数
created_atTIMESTAMP作成日時
updated_atTIMESTAMP更新日時

applications テーブル

インターンシップへの応募状態(ステータス)を管理する。

カラム名データ型説明
application_idSERIAL応募ID(主キー)
user_idINTEGERユーザーID(外部キー)
internship_idINTEGERインターンシップID(外部キー)
statusVARCHAR(50)応募の状態(例: 未対応、承認、拒否) ※ 任意の文字列のみ対応
created_atTIMESTAMP作成日時
updated_atTIMESTAMP更新日時

reviews テーブル

インターンシップのレビュー情報を管理する。

カラム名データ型説明
review_idSERIAL評価ID(主キー)
reviewer_idINTEGER評価者のユーザーID(外部キー)
reviewee_idINTEGER評価対象のユーザーID(外部キー)
internship_idINTEGERインターンシップID(外部キー)
ratingINTEGER評価スコア
commentTEXT評価コメント
created_atTIMESTAMP作成日時
updated_atTIMESTAMP更新日時

internship_participants テーブル

インターンシップの参加者情報を管理する。

カラム名データ型説明
internship_idINTEGERインターンシップID(外部キー)
user_idINTEGERユーザーID(外部キー)
statusVARCHAR(50)参加状態(例: 参加中、終了)
created_atTIMESTAMP作成日時
updated_atTIMESTAMP更新日時

5.3 データの関係性

応募プロセス

  • 求職者がインターンシップに申し込むと、applications テーブルに記録され、企業へ通知が送信される。

評価

  • インターンシップ終了後、企業と求職者が相互に評価を行い、reviews テーブルに記録。
    評価情報は求職者のプロフィールに反映される。

5.4 セキュリティ・保管方法

  • すべての個人情報および評価情報は暗号化し、定期的なバックアップと冗長化を実施