Widoki Zastosowanie widoku do wyliczania skomplikowanych

Transkrypt

Widoki Zastosowanie widoku do wyliczania skomplikowanych
Widoki
Zastosowanie widoku do wyliczania skomplikowanych wartości.
Na potrzeby strony internetowej przedstawiającej artykuły pewnego czasopisma, w oparciu o słowa
kluczowe i punktację, stworzono bazę danych zawierającą m.in. tabele artykul zawierającą dane
artykułów, tabelę keyword ze słowami kluczowymi, user z danymi użytkowników, oraz dwie tabele
łączące: art_keyword oraz user_keyword (skrypt tworzący tabele artykul, keyword, user_keyword i
art._keyword, tabela user nie będzie potrzebna i wypełniający je danymi jest podany na stronie). Gdy
dany użytkownik przegląda artykuły, są one porządkowane ze względu na przypisane im wagi. Wagi
te są wyliczane w zależności od słów kluczowych artykułu i daty opublikowania artykułu. Reguły
nadawania wagi są dwie:
1. za każde słowo kluczowe dopasowane pomiędzy użytkownikiem i artykułem: 2pkt;
2. artykuły opublikowane w ciągu ostatniego miesiąca: 5pkt, artykuły starsze niż miesiąc,
opublikowane w ciągu ostatnich 3 miesięcy: 3pkt, pozostałe: 0pkt.
Należy stworzyć odpowiednie widoki, aby:
1) dla każdego artykułu przypisać wartość punktową, w zależności od czasu publikacji:
5 punktów – artykuły opublikowane w ciągu ostatniego miesiąca;
3 punkty – artykuły starsze niż miesiąc, opublikowane w ciągu ostatnich 3 miesięcy;
0 punktów dla pozostałych.
(Można wykorzystać operacje na datach, np. SYSDATE + 1 MONTHS dodaje miesiąc do
daty, SYSDATE – 6 DAYS – odejmuje 6 dni, itp.)
2) dla każdego użytkownika i artykułu zliczyć wagi na podstawie dopasowania słów kluczowych
artykułu i użytkownika
3) wyliczyć całkowitą wagę artykułu dla danego użytkownika, uwzględniając czas publikacji i
stopień dopasowania.
Następnie napisać zapytanie SELECT, które wykorzysta stworzone widoki, aby dla każdego
użytkownika wyświetlić listę artykułów uporządkowaną malejąco wzgl. ich wag (biorąc pod uwagę
dopasowanie artykułu do użytkownika i czas publikacji).