0

設計する必要があるテスト スケジューリング アプリケーション用のデータベースを設計する方法に困惑しています。私はテストセンターを持っています。このテスト センターには X 席があります。30 分のブロックでテストをスケジュールできます。

最初は、使用可能なスポットごとにデータベースにレコードを入力し、それらを「予約済み」としてマークするつもりでしたが、それは冗長で間違った方法のようです。

私の計画は、テスト センター A の座席数が X であることを示すテーブルを用意することです (将来、複数のテスト センターを設ける可能性があります)。

次に、人がテストをスケジュールしようとしたとき (または空席を表示したとき)、30 分の時間ブロックごとに次のようなクエリを実行できます。

SELECT * FROM reservations WHERE startTime == >= x AND endTime <= Yまたはそのようなもの。ただし、これでは、空席数を知りたいときはいつでも複雑なクエリを実行する必要があります。基本的に、各時間ブロックに存在する予約の数をカウントする必要があります。30 分ブロックごとの個々のレコードだけでなく、これらの開始/終了時間をスパンとして保存すると考えています。

私の他の計画はそうです。人が時間フォームを予約する場合 9-10. 1 つは 9 で、もう 1 つは 930 で、2 つのレコードを作成しますが、実際の予約レコードへの外部キーを使用します。したがって、空いている座席を見つけるために、予約された個々のブロックを保存しているテーブルにクエリを実行できます。

同様のアプリケーションを実行した経験のある人、またはアドバイス、このデータを構造化するためにどこを見るべきかの例はありますか?w

この質問が漠然としていることは承知していますが、ディスカッションのためにどこに投稿するのが最適かわかりません。正規化されたデータを簡単な方法で維持するには、これを行う正しい方法が必要だと思います。これを聞くのに良い場所はありますか?

4

1 に答える 1

0

任意の 30 分ブロックを忘れて、開始時刻と終了時刻だけを使用する方がよい場合があります。

于 2013-02-07T16:56:44.970 に答える