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).