Projektowanie nienakładających się zdarzeń daty i czasu

Mam następujący problem:

Wydarzenia mają czas „początek” i „koniec” oraz kwotę. Używam MySQL DATETIME dla obu.

Teraz, jeśli mam ograniczenie, które mówi „nie nakładające się zdarzenia”, muszę dokonać pewnych kontroli itp., Ale jak to zaprojektować? Użytkownik potrzebuje tylko 5-minutowej precyzji, ale chcę wykonywać obliczenia z sekundami, ponieważ jest to „prostsze” / „czyszczenie”

Jeśli mam wydarzenie (A) z początkiem „RRRR-MM-DD 12:00:00” - „RRRR-MM-DD 14:00:00”

i kolejny

(B) „RRRR-MM-DD 14:00:00” - „RRRR-MM-DD 16:15:00” -> nie nakładają się na siebie, chociaż oba zawierają 14:00:00.

W celu ustalenia, że ​​rzeczywiście nie nakładają się, powinienem użyć

A.end <B.begin itp.

Lub

A.end <= B.begin itd. ORAZ zrób „hack” tak, aby wszystkie czasy zakończenia były „DATA HH: MM: 00 (minus jedna sekunda)” zamiast „DATA HH: MM: 00”, tj. A.end będzie wtedy „RRRR-MM-DD 13:59:59” zamiast „RRRR-MM-DD 14:00:00”

Pierwszy z nich jest najprostszy, ale czy będzie go brakowało, jeśli będę miał wiele różnych wydarzeń i będę musiał sprawdzić, czy „nie przepełnia”, tzn. Że poszczególne kwoty nie przekraczają całkowitej kwoty (przykład: jeśli każde zdarzenie jest rezerwacją stolika z wieloma osobami, nie mogę przekroczyć całkowitej liczby stołów w danym momencie)

questionAnswers(1)

yourAnswerToTheQuestion