0

私はスケジューリング システムに取り組んでおり、学生は php と mysql で教師と一緒にレッスンを予約できます。

データを保持する 3 つの個別のテーブルがあり、それぞれに固有の ID (studentID、lessonID、および teacherID) があります。それらはすべて多対多の関係です。多くの生徒が多くのレッスンを受けることができます。多くの教師は多くのレッスンを受けることができます。そのため、生徒と教師を同じレッスンにリンクする 2 つのジャンクション テーブル、Lessons/Students と Lessons/Teachers があります。

私が直面している問題は、新しいレッスンを入力するためのフォームを作成していることです。生徒と教師を同じフォームで割り当てられるようにしたい。フォームのほとんどのデータは簡単なレッスン テーブル (開始時間、終了時間、部屋番号など) に直接投稿されますが、ジャンクション テーブルで問題が発生しています。

利用可能な学生と教師のリストを取得して、ID に基づいてジャンクション テーブルに入力する予定です。ジャンクションテーブルのレッスンIDが必要なため、実際に作成する前にレッスンIDを取得する方法がわかりませんが、レッスンはまだ作成されていません。

すべての ID は自動インクリメント。私が考えることができる唯一の解決策は、最新のレッスン ID を返し、1 ずつインクリメントすることです。これはベストプラクティスですか?これが後で問題を引き起こす可能性があると感じています。たとえば、2 人のユーザーが同時にレッスンを作成しようとした場合や、遅延が発生して別のレッスンが別のレッスンの前に作成されたが、両者が同じレッスン ID をジャンクション テーブルに投稿した場合などです。

どんな入力でも大歓迎です!ありがとう

4

3 に答える 3

0

あなたが言ったように

For example in situations when two users try to create lessons at the same time

これが発生しても問題はありませんので、心配する必要はありません。

于 2013-10-22T13:04:55.870 に答える