我很困惑如何为我需要设计的测试调度应用程序设计我的数据库。我将有一个测试中心。该测试中心将有 X 个座位。人们可以在 30 分钟内安排一次测试。
起初我打算用每个可用位置的记录填充我的数据库,然后将它们标记为“保留”,但这似乎是多余的,而且是错误的做法。
我的计划是有一张桌子(我们将来可能会有多个考试中心),上面写着考试中心 A 有 X 个座位。
然后,当一个人尝试安排测试时(或者当我显示可用座位时),我可以为每 30 分钟的时间块查询类似的内容:
SELECT * FROM reservations WHERE startTime == >= x AND endTime <= Y
或类似的东西。然而,这需要我每次想知道有多少座位空着时都要进行复杂的查询。我基本上必须计算每个时间块存在的预订数量,认为我会将这些开始/结束时间保存为一个跨度,而不仅仅是每个 30 分钟块的单个记录。
我的另一个计划是这样的。如果一个人保留时间表格 9-10。创建两条记录,一条在 9,一条在 930,但使用指向实际预订记录的外键。因此,要找到空位,我可以查询保存单个保留块的表。
有没有人做过类似的应用程序,或建议,在哪里寻找构建这些数据的例子?w
我知道这个问题有点含糊,但我不知道在哪里最好发布讨论。我认为必须有一种正确的方法来做到这一点,以一种简单的方式保持标准化数据。有更好的地方问这个吗?