SQL Aksiyon ile Çalışma

Örnek Kompleks SQL Action Oluşturma

Builder 1 kursu kapsamında hazırladığımız Bir Fikrim Var! isimli web uygulaması için yine Builder 1 kursu kapsamında Select aksiyonlarla çalışma sürecini yürüttük. Bu öğrenme içeriğinde SQL aksiyon oluşturma sürecini Bir Fikrim Var! Web uygulamasının Dashboard ekranında yer alan örnek bir senaryo üzerinde inceleyeceğiz.

Builder 1 kursu kapsamında hazırladığımız Bir Fikrim Var! isimli web uygulaması için yine Builder 1 kursu kapsamında Select aksiyonlarla çalışma sürecini yürüttük. Bu öğrenme içeriğinde SQL aksiyon oluşturma sürecini Bir Fikrim Var! Web uygulamasının Dashboard ekranında yer alan örnek bir senaryo üzerinde inceleyeceğiz.

Hatırlayacağımız üzere, Bir Fikrim Var! uygulamasında kullanıcılar fikirlerini paylaşabiliyor, diğer kullanıcılar bu fikirlere yorum yapabiliyor ve beğenebiliyorlar. Ana sayfada yani Dashboard ekranda, her bir fikrin detaylarını, fikri paylaşan kişiye yönelik detay bilgileri, fikrin kategorisini ve fikir etkileşimlerini sunuyoruz. Builder 1 kapsamında Select aksiyonun yetenekleri doğrultusunda hiç kod yazmadan fikrin detaylarını, fikir sahibinin detaylarını ve kategori detaylarını sunan aksiyonu hazırlamıştık. Şimdi yeni bir SQL aksiyon oluşturarak hem az önce belirttiğimiz detayları hem de her bir fikir için etkileşim sayılarını sunan aksiyonu adım adım hazırlayalım.

Adım 1: Temel Sorguyu Oluşturma

Öncelikle, Custom Action panelini kullanarak bir SQL Aksiyon oluşturalım.

Şimdi aksiyonumuzda yer alacak fikirlerin temel bilgilerini alalım. "Idea" adlı tablomuzda fikirlerin başlığı ve görseli bulunuyor. Bu bilgileri çekmek için ilgili SQL komutlarını editöre yazıyoruz. 

Bu sorgu, her fikrin benzersiz kimliğini, başlığını ve görselini getirir.

İlk adımın ardından ikinci adımda fikri oluşturan personelin bilgilerini çekelim.

Adım 2: Fikri Paylaşan Kişinin Bilgilerini Ekleme

Fikri kimin paylaştığını öğrenmek için daha önce oluşturduğumuz "Personnel" adlı tablodan bazı bilgilere ihtiyacımız var. Bu tabloyu, fikri paylaşan kişinin kimliğiyle eşleştireceğiz. İlk olarak bir Join işlemi ile personnel tablosunu, Idea tablosuyla birleştiriyoruz. Joinleme işlemini yaparken Idea tablosunda yer alan IdeaHolder kolonunu kullanıyoruz ve Personnel’in Id’siyle ilişkiyi oluşturuyoruz. Ardından Select altında Personnel tablosundan çekeceğimiz, tekil Personel Id’sini, Personel adını, Personel görselini ve Ünvanını çekmeye olanak sağlayacak kolon isimlerini giriyoruz. Ekranda sorgunun son halini görüntülüyoruz.

Sonraki adımda fikir kategori bilgisini çekmek için aksiyonumuzu genişletmeye devam edelim.

Adım 3: Fikrin Kategorisini Ekleme

Fikirlerin kategorilerini eklemek için "Category" tablosunu kullanacağız. Şimdi aksiyon üzerinde yeni bir Join işlemi oluşturarak Category tablosunu, Idea tablosuyla birleştirelim. Joinleme işlemini yaparken Idea tablosunda yer alan CategoryID kolonunu kullanıyoruz ve Category’nin Id’siyle ilişkiyi oluşturuyoruz. Ardından Select altında Category tablosundan çekeceğimiz, tekil Id’yi ve kategori adını çekmeye olanak sağlayacak kolon isimlerini giriyoruz. 

Adım 4: Beğeni Sayılarını Hesaplama

Örnek uygulamamız kapsamında her fikrin toplam beğeni sayısını hesaplamak istiyoruz. Hatırlayacağımız üzere beğeniler "Likes" adlı tabloda tutuluyor. Şimdi öncelikli olarak her fikir için beğeni sayısını hesaplayan bir alt sorgu oluşturmamız gerekir. Bu alt sorguyu kendi içinde bağımsız bir sorgu gibi düşünebilirsiniz. Şimdi bu sorguyu oluşturalım.

Bu alt sorgu, her IdeaID için toplam beğeni sayısına ulaşmamıza olanak sağlar. Şimdi oluşturduğumuz bu bağımsız sorguyu Left Join kullanarak ana sorgumuza bağlayalım. 

Toplam beğeni sayısını elde etmek için aksiyonda Like_counts adlı geçici bir tablo oluşturuyoruz.

Ana sorgudaki i.Id ile Like_counts.IdeaID eşleştirirek toplam beğeni sayısını elde ediyoruz. Elde ettiğimiz toplam beğeni sayısını çekmek için aksiyona ekleme yapalım. Toplam beğeni sayısını çekmek için Coalesce fonksiyonunu kullanıyoruz. Eğer bir fikir için hiç beğeni yoksa, beğeni sayısı NULL (boş) olacaktır. Bunu "0" olarak göstermek için COALESCE fonksiyonunu kullanıyoruz. Böylece ekranda sunulan aksiyon sorgu yapısına ulaştık.

Şimdi benzer yapıda toplam yorum sayısını çekmeye olanak sağlayacak sorguyu aksiyona ekleyelim. Bu işlemlerle birlikte ekranda görüldüğü üzere aksiyonun son haline ulaşıyoruz. Aksiyonu isimlendirip kaydederek süreci tamamlıyoruz.

Oluşturduğumuz bu yapı sayesinde, fikirlerin detaylı bilgilerini alabilen, bu süreçte fikri paylaşan kişinin ve fikrin kategori bilgisini içeren ve her bir fikir özelinde toplam yorum ve beğeni sayılarını hesaplayan özel bir SQL aksiyon oluşturduk. Benzer kurguda kompleks SQL aksiyonlarını ihtiyacınıza uygun olarak Kuika’nın SQL editöründe hızlıca hazırlayabilirsiniz.

Dosyalar

Yardımcı kaynaklar

Sözlük