# 不動産調査OS データベース設計書(Ver1.0) --- # 1. 設計方針 - 物件単位で調査データを管理 - 査定前/媒介後を同一物件IDで管理 - バージョン履歴を保持 - 契約入力アシスタント用に構造化データを保存 - スコア計算は動的算出(保存しない) --- # 2. テーブル一覧 1. users 2. properties 3. investigations 4. investigation_items 5. investigation_files 6. contract_risk_settings 7. contract_risk_logs --- # 3. users(ユーザー) | カラム名 | 型 | 説明 | |----------|----|------| | id | bigint PK | ユーザーID | | name | varchar | 氏名 | | email | varchar | ログインID | | role | varchar | 権限(user/admin) | | created_at | datetime | 作成日時 | | updated_at | datetime | 更新日時 | --- # 4. properties(物件) | カラム名 | 型 | 説明 | |----------|----|------| | id | bigint PK | 物件ID | | property_code | varchar | 物件管理番号 | | name | varchar | 物件名 | | address | varchar | 住所 | | lot_number | varchar | 地番 | | land_area | decimal | 面積(㎡) | | current_status | varchar | 状態(draft/active/contract_ready) | | created_by | bigint FK | 作成者 | | created_at | datetime | 作成日時 | | updated_at | datetime | 更新日時 | --- # 5. investigations(調査履歴) | カラム名 | 型 | 説明 | |----------|----|------| | id | bigint PK | 調査ID | | property_id | bigint FK | 物件ID | | phase | varchar | 調査フェーズ(pre/post) | | version_no | int | バージョン番号 | | contract_score | int | 契約安全度スコア | | completed_flag | boolean | 調査完了フラグ | | created_by | bigint FK | 作成者 | | created_at | datetime | 作成日時 | ※ version_no は物件単位で連番管理 --- # 6. investigation_items(調査項目データ) | カラム名 | 型 | 説明 | |----------|----|------| | id | bigint PK | ID | | investigation_id | bigint FK | 調査ID | | item_key | varchar | 項目キー(例: road_width) | | item_value | varchar | 入力値 | | numeric_value | decimal | 数値(mなど) | | risk_level | varchar | HIGH/MEDIUM/LOW | | is_locked_required | boolean | 必須ロック対象か | | created_at | datetime | 作成日時 | ### item_key 例 - rebuild_possible - road_type - road_width - frontage_length - zoning - water_supply_connected - sewer_connected - setback_area - flood_depth - boundary_marker - encroachment - private_road_share --- # 7. investigation_files(添付ファイル) | カラム名 | 型 | 説明 | |----------|----|------| | id | bigint PK | ID | | investigation_id | bigint FK | 調査ID | | file_type | varchar | photo/document | | file_path | varchar | 保存パス | | description | varchar | 説明 | | uploaded_by | bigint FK | アップロード者 | | created_at | datetime | 作成日時 | --- # 8. contract_risk_settings(配点設定) | カラム名 | 型 | 説明 | |----------|----|------| | id | bigint PK | ID | | item_key | varchar | 対象項目 | | deduction_score | int | 減点値 | | importance_level | varchar | RED/YELLOW/BLUE | | created_at | datetime | 作成日時 | ※ 管理者が変更可能 --- # 9. contract_risk_logs(スコア計算ログ) | カラム名 | 型 | 説明 | |----------|----|------| | id | bigint PK | ID | | investigation_id | bigint FK | 調査ID | | total_score | int | 計算結果 | | created_at | datetime | 計算日時 | --- # 10. インデックス設計 - properties.property_code にインデックス - investigations.property_id にインデックス - investigation_items.investigation_id にインデックス - investigation_items.item_key にインデックス --- # 11. スコア計算ロジック(アプリ側) 1. 初期値100点 2. investigation_items から該当リスク抽出 3. contract_risk_settings と照合 4. 減点合計算出 5. investigations.contract_score に保存 --- # 12. データ関係図(簡易) users └── properties └── investigations ├── investigation_items ├── investigation_files └── contract_risk_logs --- # 13. 拡張余地(Ver2.0) - CRM連動テーブル追加 - 差分履歴テーブル追加 - 契約書テンプレートテーブル追加 - 監査ログテーブル追加 --- # 設計思想まとめ - 物件中心設計 - フェーズ別バージョン管理 - 項目は構造化(item_key方式) - スコアは設定変更可能 - 将来拡張可能な柔軟設計