Widoki (perspektywy)
Widok (perspektywa) jest to wirtualna tabela, którą określa zapytanie SQL. Można z niej pobierać dane (SELECT) tak samo jak ze zwykłej tabeli. Dzięki niej możemy zaoszczędzić sobie tworzenia w aplikacji długich zapytań, a także w niektórych przypadkach uniezależnić aplikacje od właściwej struktury podstawowych tabel.
W PHP od jakiegoś czasu używa się bardzo często skryptów, które umożliwiają prostsze i szybsze operacje na bazie danych - ORM (np. Propel), DAO czy ActiveRecord. Poza prostymi operacjami na bazie potrafią też łączyć kilka tabel podczas jednego zapytania SELECT. Osobiście nie do końca przypadło mi to do gustu ponieważ w pewnym momencie obiekt, który operował zawsze na jednej tabeli zaczyna się odwoływać do innych tabel. W tym przypadku możemy skorzystać właśnie z widoków i utworzyć osobny obiekt, który się zajmie jego obsługą.
Do tworzenia widoku służy komenda CREATE VIEW, aby zniszczyć widok wystarczy użyć DROP VIEW.
Następnie by odwołać się do tych danych wystarczy proste zapytanie.
Prawda, że przyjemniej się używa takich zapytań?
Słowa kluczowe: PostgreSQL, Techblog, bazy danych, perspektywy, sql, tabele, widoki, artykuł, blog

Komentarze i opinie
Oj tak, przyjemnie :)
Jest to juz od bardzo dawna. Zadna nowosc. Z takich fajny rzeczy jesli chodzi o perspektywy to zapoznaj sie z perspektywa zmaterializowana lub dynamiczna perspektywa gdzie ze wzgledow wydajnosci w locie dolanczany jest kod SQLa.
Nowość to żadna rzeczywiście, ale nie spotkałem się z żadnym open soruce CMS, który by te widoki wykorzystywał. Co świadczy o tym, że należy wiedzę propagować wśród programistów, zainteresować ich korzyściami jakie z tego wynikają.
Jak widze zainteresowac sie wypada :)
taka perspektywa była by dużo lepsza gdyby była 'insertable' - mysql ma bardzo dużo ograniczeń z tym zwiazanych i wykorzystać jest to bardzo ciezko
Faktycznie - ciekawsze zagadnienie to perspektywy zamterializowane. Opis ich implementacji w PostgreSQL mozna znalesc tutuaj:
http://www.jonathangardner.net/PostgreSQL/materialized_views/matviews.html
trochę to będzie odgrzewany kotlet, ale może ktoś tu jeszcze zajrzy... odnośnie 'insertable' widoków, to jak ktoś się uprze, to można to zrobić przy wykorzystaniu triggera :)
oczywiście nie poprzez triggery, a poprzez reguły (rules) my bad ;)
czy na perspektywach mozna wykonywac insert i update?
i tak i nie, standardowo nie, ale w niektórych bazach można, ale to nie takie proste i muszę się przyznać, że ja nigdy tego nie robiłem, ani nie mam zamiaru w najbliższym okresie
Pojebalo was
ale nie napisałeś nic o modyfikacji takich widoków, pzdro
Nowy komentarz