1

私はプログラミングを学んでいるだけで、データベースはあまり得意ではありません。大学の管理ウェブサイトを作ろうとしています。

だから私は列を持つテーブルを作る必要があります - 教師、クラス、期間、日。1 日に 5 つの期間がある場合、1 週間に 30 の期間があります (6X5)。そしてクラスが10個あれば組み合わせは300通り。

私が必要としているのは、曜日、期間、クラスの組み合わせがユニークであること、つまり、1 人の教師として結果を提供することです。2 人の異なる教師が同じクラスの同じ日の同じ時間帯に割り当てられないようにします。

望ましい結果を得るために、どのようにそのような手配を行うことができますか? データベースとしてMySQLを使用しています。複数の列に分割することを考えましたが、理解できませんでした。

4

2 に答える 2

2

これは、データベースではなく Web アプリから制御する必要があります。そのため、特定の日/期間に教師にクラスを割り当てようとしている場合、そのクラスがすでに受講されている場合は、エラーをスローする必要があります。

ただし、インデックスを使用してこれらの列全体で一意性を確保することにより、コード内で特別なレベルの保護を行うことができます。例えば

create unique index class_idx on TABLE_NAME (class,period,day);

これにより、同じクラス、期間、日の組み合わせで 2 つの行を挿入できなくなります。

于 2013-06-11T06:14:45.247 に答える