![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 20 Pomógł: 0 Dołączył: 15.01.2012 Ostrzeżenie: (0%) ![]() ![]() |
Problem jest taki. W jaki sposób mogę zabezpieczyć taka sytuacje:
Mam tabele z produktami i przypisane do nich ID. Dodatkowo mam tabele z rezerwacjami gdzie kluczem obcym jest ID Produktów. Jak rozwiązać sytuacje, żeby można było wykonać rezerwacje na dany produkt maksymalnie raz w miesiącu. Cos na zasadzie, że jeśli pójdzie INSERT do tabeli z Rezerwacjami to należy sprawdzić czy przypadkiem w tym miesiącu dany produkt nie był już rezerwowany i w razie konieczności zwrócic odpowiedni komunikat. |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 2 178 Pomógł: 596 Dołączył: 25.09.2009 Skąd: Piwniczna-Zdrój Ostrzeżenie: (0%) ![]() ![]() |
Zapytaniem z poziomu PHP:
gdzie: :ID - id produktu, :YEAR - date('Y', time()) :MONTH - date('m', time()) Jeżeli powyższe zapytanie zwróci cokolwiek, to w danym miesiącu produkt o id :ID był już rezerwowany. |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 20 Pomógł: 0 Dołączył: 15.01.2012 Ostrzeżenie: (0%) ![]() ![]() |
Zapytaniem z poziomu PHP:
gdzie: :ID - id produktu, :YEAR - date('Y', time()) :MONTH - date('m', time()) Jeżeli powyższe zapytanie zwróci cokolwiek, to w danym miesiącu produkt o id :ID był już rezerwowany. Rozwiązanie wydawało się być ok. Ale w "praniu" wyszła jego niedoskonałość. Problem się pojawia jak ktoś rezerwuje datę z nie aktualnego na daną chwilę miesiąca. A więc przykładowo jeśli ktoś nie rezerwował daty w grudniu, to może tak na prawdę zarezerwować mi cały styczeń. Mi zależy na tym aby konkretna osoba mogła w miesiącu dokonać tylko JEDNEJ rezerwacji. Niezależnie na jaki termin (aktualny czy bardzo odległy). Takie zabezpieczenie do nietworzenia fikcyjnych rezerwacji. Ma ktoś jakieś pomysł na modyfikacje tego zapytania do bazy? Bądź może jakaś sugestia co do napisania jakieś procedury po stronie bazy (niestety nigdy tego nie robiłem). |
|
|
![]() ![]() |
![]() |
Aktualny czas: 17.10.2025 - 20:38 |