PHP MySQL view kullanımı

MySQL Views MySQL kodlarımızı daha düzenli ve yazılımdan ayırmaya yarayan bir veritabanı sanal tablosudur . Performans açısından büyük avantajlar sağlamasa da karmaşık veritabaı korgularını anlaşılır bir şekle dönüştürmek için çok uygun bir araçtır . Aşağıdaki gibi bir sql kodu php kodu içerisinde karışıklığa yol açacaktır . View’ ler burada imdadımıza koşuyor ve daha kullanışlı bir yazılım yazmamıza yardımcı oluyor .

Bu kodu çalıştırmak için php sayfamıza yazmamız gerekiyordu .


$sorgu = mysql_query("select ogrenciler.id,ogrenciler.ogrenciAdi,ogrenciler.ogrenciSlug,ogrenciler.ogrenciPisirmeSuresi,yazarlar.yazarKullaniciAdi,ogrenciResimleri.ogrenciResmi,kategoriler.kategoriSlug from ogrenciler 
inner join ogrenciResimleri on ogrenciler.id = ogrenciResimleri.ogrenciId
inner join yazarlar on ogrenciler.ogrenciSahibi = yazarlar.id
inner join ogrenciKategorileri on ogrenciler.id = ogrenciKategorileri.ogrenciId
inner join kategoriler on ogrenciKategorileri.kategoriId = kategoriler.id
where ogrenciResimleri.resimVarsayilan = 1 and ogrenciler.ogrenciSonEklenenlerdeGoster = 1 and ogrenciler.ogrenciOnay = 1
group by ogrenciResimleri.ogrenciId order by ogrenciler.ogrenciSayfaGosterimi limit 4");

Sayfamızda ne kadar fazla alan kapladığını görmekteyiz . Bu kodun sonucunu aşağıdaki gibi alabilseydik daha güzel olmazmıydı ?


$sorgu = mysql_query("select * from ogrenciGetir");

Evet iki kod arasındaki karmaşıklık farkını gördük ve view kullanmanın daha mantıklı olduğunu düşünebiliriz . Şimdi mysql view oluşturalım .


CREATE  VIEW ogrenciGetir AS
select yemekler.id,yemekler.yemekAdi,yemekler.yemekSlug,yemekler.yemekPisirmeSuresi,yazarlar.yazarKullaniciAdi,yemekResimleri.yemekResmi,kategoriler.kategoriSlug from yemekler 
inner join yemekResimleri on yemekler.id = yemekResimleri.yemekId
inner join yazarlar on yemekler.yemekSahibi = yazarlar.id
inner join yemekKategorileri on yemekler.id = yemekKategorileri.yemekId
inner join kategoriler on yemekKategorileri.kategoriId = kategoriler.id
where yemekResimleri.resimVarsayilan = 1 and yemekler.yemekSonEklenenlerdeGoster = 1 and yemekler.yemekOnay = 1
group by yemekResimleri.yemekId order by yemekler.yemekSayfaGosterimi limit 4


Yukarıda view oluşturduk , artık php query içerisine “selec * from ogrenciGetir” yazdığımızda istediğimiz sonuçlar karşımıza çıkacaktır . View ‘lerin performansa direk etkisi yoktur . MySQL document içerisinde kullanılması tavsiye edilmektedir ve performansa çok az bir etkisininde olduğu yazmaktadır .