私は学部のテーブルを持っており、各学部には彼/彼女の下に一定数の学生がいます。したがって、「現在」の列があります。これは、現在その下にいる学生の数です。
しかし、私は++と-学生を別の学部に切り替えるたびにしたくありません。count()を使用するクエリで列を最新の状態に保つ方法はありますか?たとえば、現在の列を使用する場合など、クエリ'select count()from student where Advisor = 2'を使用する方が簡単で、正確であることがわかります。
私は学部のテーブルを持っており、各学部には彼/彼女の下に一定数の学生がいます。したがって、「現在」の列があります。これは、現在その下にいる学生の数です。
しかし、私は++と-学生を別の学部に切り替えるたびにしたくありません。count()を使用するクエリで列を最新の状態に保つ方法はありますか?たとえば、現在の列を使用する場合など、クエリ'select count()from student where Advisor = 2'を使用する方が簡単で、正確であることがわかります。
これを行うには、ビューを使用します。
CREATE VIEW studentCount AS
SELECT
profID,
profName,
whatever,
(SELECT COUNT(*)
FROM studentTable
WHERE studentTable.profID=profTable.profID
) AS studentCount
FROM profTable;
明らかに、これはスキーマに合うように少しマッサージする必要がありますが、基本的には、テーブルのすべての列に教員情報が含まれるようにビューを設定し、必要な数をカウントする列を最後に追加します。
トリガーはあなたの問題の解決策になる可能性がありますか?
http://dev.mysql.com/doc/refman/5.5/en/triggers.html
学生が学部を切り替えるたびに、学部テーブルを自動的に更新するトリガーを作成できます。