Hangi Yöntem Daha İyi ?
-
Diyelim öğrenciler diye bir tablomuz var. Bu öğrencilerin bağlı oldukları dersler var.
Şimdi bu noktada ders ve öğrenci diye tablomuz olduğunu varsayarsak;
1. seçenek, ders tablosunda ogrenci_sayisi diye bir entity tutmak.
2. seçenek, her sorguda count ile öğrenci tablosunu saydırmak.
Sizce hangi yöntem daha iyidir ?
mesela 1 öğrenci ekleyip çıkardığımızda bunu ders tablosundaki ogrenci_sayisina da uygulamamız gerekiyor.
-
Tüm öğrencilerin aynı dersleri aldığını kabul ederek 1 Adet sınıf için bu programı yapıyorsan, öğrenciler ve dersler tablosu yeterli..
Çünkü tüm öğrenciler aynı tüm dersleri alacaklar.
Ama 1 okul için yapıyorsan, bunun 1 inci sınıfı var, 2 inci sınıfı var, 3 üncü sınıfı var...
Onun için daha fazla tablo ile uğraşman gerekecek.
1 incisi öğrenciler tablosu, burada tüm öğrencilerin öğrenci id, ad ve soyadları tutulacak.
2 inci sınıf-şubeler tablosu, burada idleri ve 1-A, 2-A, 1-B, 2-B gibi sınıf adları bilgileri tutulacak.
3 üncüsü öğrenci-şubeler tablosu burada öğrenci id ile sınıf id sini tutacaksın, böylelikle hangi sınıfta kaç tane öğrenci olduğunu bu tablo dan tutmuş olacaksın.
4 üncüsü dersler tablosu, burada id leri ile birlikte dersin adı ve kaçıncı sınıflara verildiğini tutacaksın.
Matematik 1 inci sınıf, kimya 3 üncü sınıf.. gibi.
5 incisi öğrenci-dersler tablosu, burada ise öğrenci idleri ile birlikte ders id sini tutacaksın... ayrıyeten bu tablonun da id si var
6 ıncısı yazılılar tablosu, 5 inci tablomuz öğrenci-desler tablosunun id si ile alınan sınav sonucunu tutacaksın...
Bu kadar basit bir meseleyi bu kadar karışık bir şekilde ama olması gerektiği şekilde çözdüğüm için üzgünüm :)
-
T-SQL ile basitçe elde edebileceğin bir sonuç için ekstra sorgu ve tablo yapısı oluşturman bana çok mantıklı gelmiyor.
