キクと散歩 法規制コードの3回目の修正

京橋川の土手をキクと散歩
checklist_results (プロジェクト別選択結果)

※課題:保存は全件DELETE → INSERT の洗い替え方式

カラム役割
project_idFK現場
regulation_idFK法規制
is_checkedboolean適用/非適用

custom_regulations (現場固有のその他規制)

regulations とほぼ同列構成project_id+is_checked
is_checked が直接カラムにあり、checklist_results とは別管理

法規制のコードを見直しを始めた・・・まずは現状分析

1.現在のテーブル構成

regulations`(法規制マスタ)

※課題:ai_description1列に「キーワード」と「制御フラグ」を混在させている

カラム役割
idPK
parent_idFK(self)親=null、子=親ID(2段構造)
group_codestring法律名(主に親)
ref_lawstring関係条文(主に子)
action_contentext実施すべき内容
full_law_texttext原文(展開表示用)
ai_descriptiontextAI判定用キーワード(【選択必須】/【選択しない】制御フラグも兼用)
explanation_imagestring解説画像

    2.現在の処理フロー

    “`
    [工事管理ページ]

    ▼ 法規制編集ボタン
    [edit_Laws_Regulations.blade.php](編集画面)

    ├─ ✨AI法規制判定ボタン(タブ単位)
    │ │
    │ ▼ POST /projects/{id}/ai_recommend(Ajax)
    │ AiRecommendationService::recommend()
    │ – regulations 全件取得
    │ – project->overview(工事概要テキスト)を入力
    │ – Claude API に問い合わせ → ID配列を返却
    │ – session(‘ai_suggestions’) に保存
    │ – ページリロード → チェック状態に反映

    ├─ 手動チェック(親・子チェックボックス)

    └─ 登録/更新ボタン → POST /projects/{id}/checklist/save
    – checklist_results を全削除 → 再挿入
    – custom_regulations の is_checked を更新

    [index.blade.php](閲覧画面)
    – checklist_results に is_checked=true のもののみ表示
    – session(‘ai_suggestions’) があれば合体してハイライト

    3.現在の問題点

    #問題影響
    1AI判定の入力が project->overview(自由記述テキスト)のみAI精度が工事概要の書き方に大きく依存
    2ai_descriptionに制御フラグ(【選択必須】)を埋め込み検索/条件判定とフラグが分離できていない
    3「全件DELETE→INSERT」の洗い替え保存複数ブラウザ同時操作や途中エラー時にデータ消失リスク
    4タブメニューがヘッダーの nav_extraスロットに注入レイアウト上の柔軟性が低い
    5AI判定がセッションベース(ai_suggestions)ページ遷移・ログアウトで消える、DB永続化されない
    6インライン onclick=””が混在(index.blade.php)CSPの unsafe-inline削除方針と矛盾
    ブックマークする パーマリンク.

    コメントを残す

    メールアドレスが公開されることはありません。 が付いている欄は必須項目です

    • 2026年6月
      1234567
      891011121314
      15161718192021
      22232425262728
      2930