niedziela, 20 grudnia 2009

Egzotyczne wyspy, owoce, rozwiązania

Dzisiaj o tym ostatnim. Po co są widoki w bazach ? Widok jest wirtualną tabelą która pozwala bardziej zabezpieczyć dane, przyspieszyć wyciąganie danych i przede wszystkim ukryć złożoność bazy przed użytkownikiem. W normalnym zastosowaniu widoki służą do wyświetlania danych z bieżącej bazy. A co powiesz na to:

Baza Test:
Tabela A
Widok A
Procedura initA

Procedura initA - kasuje tabele A,
a nastepnie wykonuje:
Insert Into tabela A
Select * from Widok A

po tym dzieje się cud i pojawiają się dane w tabeli A.
Jak?

3 komentarze:

micr0 pisze...

Widok zapewne nie jest podpięty pod to pod co powinien ...

Filip pisze...

moze jaki Cache ???
"SELECT *"....view don't get rebuilt automatically.
Best practice is to code like "select col1, col2, col3, col4, etc from mytable" ???

mkania.pl pisze...

micr0 ma racje w tym przypadku, projektant bazy nazwal widok w "niekonwencjonalny" sposob tzn.
widok A wcale nie wyswietlal danych tabeli A ale dane z zewnetrznych baz.
Pytanie jednak co daje taka konstrukcja?

Insert into tabelaA
Select from widokA

Wg mnie nazwa widoku jest co najmniej nie odpowiednia, ale poza tym jeśli w wielu miejscach np w procedurze ma być to używane to chyba nie jest zły pomysł.

a to z cachem "Select *" zdarzyło mi się kilka razy :)