データベースの問題に頭を悩ませようとして問題が発生しました。学校入学制度の状況は以下のとおりです。
表1:学校CREATE TABLE学校(schoolID auto_increment、school_name varcharなど)
表2:学生CREATE TABLE学生(studentID auto_increment、student_name varcharなど)
表3:登録(問題はここにあると思います)CREATE TABLE登録(enrolID、...)
問題は、以前のシステムの範囲は、いつでも任意の数の場所から登録を許可することであり、データベースに挿入するだけでした。これは問題なく、すべてが自動インクリメントされました。
報告が行われるとき、彼らが登録を取得したとき、登録の数が散らばっていたという事実が気に入らなかったので、範囲が変更されました。彼らは、各学校の登録IDを順番に並べることを望んでいました。
私が持っていた1つの考えは、オプション(a)でした
すべての学校の登録テーブルを作成します(合計で約1000〜1500の学校を参照)。このようにして、挿入されたすべての登録が順番に保存されます。
オプション(B)
その学校に挿入された「lastrecord」を記録する別のテーブルがあります。
CREATE TABLE lastrecord(schoolname varchar、nextrecord int)
これにより、すべての挿入の前に、データベースをチェックして、その学校で使用された最後のIDを見つけ、値を取得して+1し、登録テーブルに挿入する必要があります。
この方法を使用すると、登録IDの前に学校IDを付けます(例:schoolID:100)
新規登録ID:45人目の学生の場合は10045。
次に、挿入するたびに、使用したレコードでそのテーブルを更新します。これは非常に非効率に思えますが、私はより良い解決策を見つけるのに苦労しています。
よろしくお願いします。