Oferta wyróżniona przez x dni

2008-10-25 09:29

Czas płynie nieubłaganie, a jakiekolwiek nadzieje, że będzie trochę więcej czasu przy skończeniu kolejnego projektu rozwijają się bardzo szybko. Obiecałem sobie jednak, że postaram się umieszczać przynajmniej jeden wpis na miesiąc, aby mój blog nie podzielił losu innych programistów, którzy pochłonięci pracą / rodziną / nowymi doświadczeniami życiowymi porzucili pisanie.

Aktualnie jestem na etapie kończenia serwisu, który będzie skupiał biura nieruchomości z lokalnego rynku. Klient zażyczył sobie, aby biuro nieruchomości mogło zaznaczyć maksymalnie 5 ofert wyróżnionych. Po 14 dniach taka oferta miała samoczynnie tracić status wyróżnionej. Zaznaczone w ten sposób nieruchomości będą pojawiać się jako pierwsze przy wyszukiwaniu oraz będą miały inny kolor.

Rozwiązałem to poprzez dodanie tylko jednej nowej kolumny do bazy, która zawierała datę wygaśnięcia oferty. Dzięki temu nie trzeba się bawić w jakieś automatyczne odznaczanie oferty. Z trudniejszych rzeczy pozostaje sortowanie, które wygląda następująco:

Należało także zapamiętać jakie biuro korzystało z wyróżnionych ofert (bo to usługa dodatkowo płatna). Stworzyłem prostą tabelę:

Po użytkowniku będzie kojarzona firma, która skorzystała z usługi. Jak widać zastosowałem przy usuwaniu RESTRICT, dlatego żaden użytkownik nie może być z systemu usunięty z uwagi właśnie na rozliczenia z operatorem serwisu. Natomiast inne podejście użyłem przy ofercie, którą można usuwać (wstawiana jest wartość NULL do kolumny). By jednak nie stracić informacji co to za oferta była w kolumnie "description" przechowuje najistotniejsze informacje dotyczące tejże oferty.

Słowa kluczowe: PostgreSQL, Projekty, sql, strona, artykuł, blog

Projektowanie i tworzenie stron www w PHP5. Opisy i recenzje oprogramowania typu cms, blog, wiki, open source.
Wszelkie prawa zastrzeżone.