私は最近、php+mysql に基づいて修復レポート システムを開発しています。開発の途中で、データベースの構造に重大なエラーがあることに気づきました。図に示すように、
主な問題は、user テーブルと web_order テーブルの関連付けで発生します。重要な点は、user テーブルの主キー uid が web_order テーブルの外部キーとして関連付けられていることです。 web_order テーブルの w_workid の値は、 user テーブルの uid フィールドの値でもあります。その理由は、このシステムには、通常のユーザー、power フィールドによってのみ区別されるユーザー権限があるためです。システム ロジックでは、誰が修理注文を提出したか (ユーザー)、誰が修理を行ったのか (メンテナンス技術者)、誰が割り当てたのか (秘書) を示す必要があります。テーブルの構造を変更していただければ幸いです。よろしくお願いします。
それで、誰が主題だと思いますか?
明らかに web_order テーブルですが、何が問題なのでしょうか?
それで、主題は誰だと思いますか?
明らかに web_order テーブルですが、何が問題なのでしょうか?
web_order テーブルが本体であることはわかっています。問題は、メンテナンス注文を送信した人 (ユーザー)、修理した人 (メンテナンス スタッフ)、およびそれを割り当てた人 (秘書) を示すシステム ロジックを実現することです。 web_order テーブルの調整に進みます。user テーブルには、すべてのユーザー (保守担当者、秘書、一般ユーザー、管理者を含む) の情報が含まれています。ユーザーの修理オーダーは、uid に関連付けられます。しかし、秘書や保守担当者は web_order テーブルに何を使用するのでしょうか?上記のように workId を追加して関連付ける (uid を挿入する) と、単一の注文の修理レポートと保守担当者を同時に見つけることができないことがわかります。
修理報告時に web_order テーブルにレコードが作成されます
メンテナンス中に web_order テーブルにレコードが作成されます
割り当て中にも web_order テーブルにレコードが作成されます
関連付けられないわけがありません。
web_order のメンテナンス オーダーのステータスは、state フィールドによって決定され、修理レポートは web_order にレコードを追加します。オーダーを受信する秘書の割り当てとメンテナンス担当者は、更新テーブルの state フィールドによって表されます。追加される。
秘書の割り当てや保守要員による指示の受信は、更新テーブルの状態フィールドで表されるため、レコードは追加されません
そうすると、誰が操作を行ったかを記録する場所がありません
したがって、当然わかりません誰が何をしているのか
こんな単純な問題の解決策が見つからないのですか?
秘書の割り当てや保守要員による指示の受信は、更新テーブルの状態フィールドで表されるため、レコードは追加されません
そうすると、誰が操作を行ったかを記録する場所がありません
したがって、当然わかりません誰が何をしているのか
こんな単純な問題の解決策が見つからないのですか?
さらに 2 つのテーブルを作成し、オーダー テーブルを関連付け、秘書とメンテナンス スタッフの操作をそれぞれ記録します
スタッフの時間、操作などを記録するための操作ログ テーブルを追加します