1. kullanıcıya istedigi dakikayı secme sansı vermemeniz mantıklı olan. 10,10:30, 11:00 gibi vermeniz daha uygun. Ama verecekseniz su mantık,
2. veritabanına baslama ve bitis diye iki kolona baslama-bitis tarihlerini kaydet.
3. Baskası yeni bir şey kaydederken db de bu aralıga denk gelen satır var mı kontrol et. sql ile yap bu kısmı.
db ye kaydetmek için yeni post_start ve post_finish degeri aşağıdaki degerleri sağlamamalı; saglarsa saat gecersiz diye uyarı verdireceksiniz.
(post_start <= db_start && post_finish >= db_finish ) // secilen tam aralıkta olabilir
(post_start >= db_start && post_finish >= db_finish) // secilen aralıkta baslayıp aralıktan sonra bitebilir
(post_start <= db_start && post_finist <=db_start) // önce baslayıp secilen aralıkta bitiyor olabilir.
dinamik şekilde bu sekil olabilir. arkadaşın dediği gibi günü periyotlara bölüp başka algoritmalar kurulabilir, mesela, randevu periyodunuz 1 saat olsun ve her saat başı olsun.
tarihi bir kolona, saati ise integer sekilde dbye 8,9,10 seklinde kaydedebilirsiniz.
bir kayıt girdildiginde dbye "tarih, 9, uyeformid" gibi 3 kayıt girersiniz. Daha basit bir tablo yapısı olabilir. sorgularken de o tarihe, saat 9 da kayıt varmı kontrol edip kaydedersiniz.
kolay gelsin.