Mysql
 sql >> база данни >  >> RDS >> Mysql

Намиране на безплатни слотове в система за резервации

Вероятно прекалено за вашето приложение - но:

Сравнително прост начин за подобряване на вашите търсения за сметка на усложняването на процеса на „записване“ би бил да промените таблицата за резервации, за да я превърнете в таблица „Наличност“.

Добавете булева колона, за да посочите дали слотът е свободен или резервиран (или още по-добре въведете идентификатора на клиента, който го е резервирал, и използвайте 0, ако слотът е свободен).

Започнете с един безплатен слот, 1 януари 2009 г. -> 31 декември 20??

Когато получите резервация, разделете безплатния слот на 3 (две вмъквания и една актуализация), резервирания слот и двата налични слота.

Продължавайте да правите това и тъй като времевата рамка става все по-фрагментирана, процесът на резервация ще се състои от едно от следните:

  • Задаване на цял „наличен слот“ на някого (една актуализация)
  • Разделяне на „наличен слот“ на две (една актуализация и една вмъкване)
  • Разделяне на слот на 3 (както по-горе), ако някой резервира средната секция от наличен слот.

Това не е невероятно сложно за управление и процесът на търсене се превръща в проста заявка:намиране на налични слотове в необходимия период от време (резервирани=false или customerid=0, както и да отидете), където крайна дата - начална дата>=числото от дните, които искате.

Това удвоява размера на таблицата за резервации/наличност и прави резервациите по-малко лесни, но компромисът е, че процесът на търсене е толкова лесен, колкото става.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Mysql избор от две таблици

  2. MySQL - UPDATE заявка въз основа на SELECT заявка

  3. MySQL:Изберете всички дати между диапазона от време и получете дати, съответстващи на данните в таблицата

  4. Новият обект на Mysqli е Null

  5. Използване на Oracle JDeveloper с MySQL Database Service на Oracle Cloud Platform, част 1