şu ilişkisel tablo varya

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
aydogan46
Üye
Mesajlar: 115
Kayıt: 11 Haz 2003 02:59
Konum: ankara
İletişim:

şu ilişkisel tablo varya

Mesaj gönderen aydogan46 »

Mustafa hocam sagolasın bana epey yardımların dokundu gerçi forumdaki herkesin. forma yeni kaydoldugumda delphide başlangıc seviyesinde sayılırdım şimdi epey yol aldım. ama şu veritabanında ilişkisel tablo mantıgını bi türlü kafam almadı. ama onu mutlaka yapmam lazım. daha önce önce dbase ve query kullanıyordum. şimdi ado çalışmaya başladım. bunda da adoquery kullanıyorum ama ilişkisel yok. hangisinde olursa olsun bir yardım etsseniz hayır duası alırsınız.( ayrıca adodataset te hiçbisey yok bende..) saygılar.
Kullanıcı avatarı
mussimsek
Admin
Mesajlar: 7587
Kayıt: 10 Haz 2003 12:26
Konum: İstanbul
İletişim:

Mesaj gönderen mussimsek »

Merhaba,

hocam ilişkisel kavramı veritabanı ile ilgili. ADOQuery ile bir alakası yok.

Temel prensip, verileri mümkün olduğu kadar fazla tekrar etmeden tabloları oluşturmak. Bu da genelde zamanla, tecrübe ile oluşacak bir olay. Proje yaptıkça bu yeteneğin gelişecektir.

Ufak bir örnek vereyim mesela : Bir öğrenci programı yazıyorsun, öğrenci ve aldığı notlar olsun diyelim. Bu durumda ÖĞRENCİ, DERS VE NOT tablosu diye üçe ayırırsın.

ÖĞRENCİ_NO, ÖĞRENCI_ADI, TELEFON ...

DERS_NO, DERS_ADI, HOCASI ....

ÖĞRENCİ_NO, DERS_NO, ALDIĞI_NOT

gördüğün gibi NOT tablosunda Öğrencisinin ismini ve ders ismini yazmadık. Bunları nolardan bulabiliriz. yazmış olsa idik gereksiz yere tablo şişecekti.

- Ayrıca tabloları birbirine NO alanları ile bağladık. Bunların mümkün olduğu kadar unique (tekil) olması iyi olacaktır. Unique demek o tablo içinde her kayıt için farklı bir değer olması demek. Yani Öğrenci tablosunda aynı noya sahip iki öğrenci olmasın demek.

Benim aklıma ilk etapta gelenler bunlar. Usta abilerimiz tecrübelerinin ve önerilerini yazacaklardır.

Kolay gelsin.
Kullanıcı avatarı
fahrettin
Admin
Mesajlar: 2619
Kayıt: 11 Haz 2003 10:38
Konum: İstanbul
İletişim:

Mesaj gönderen fahrettin »

Evet daha sonra da ornegin 1 nolu ogrencinin butun notlari :

Select D.DERS_ADI, N.ALDIGI_NOT
from DERS as D, NOT as N
where D.DERS_NO=N.DERS_NO and N.OGRENCI_NO=1


2 No 'lu dersten ogrencilerin aldigi notlar:

Select O.AD, N.ALDIGI_NOT
from OGRENCI as O, NOT as N
where O.OGRENCI_NO=N.OGRENCI_NO and N.DERS_NO=2
order by O.AD

ornekler artabilri... Mesela butun derslerdeki butun ogrencileri notlari da her 3 tablo arasinda iliskiler kurularak listelenebilir. Mustafa Bey'in de soyledigi gibi tablolari tasarlarken uygun bir yapi kurmak onemli. Kendinizi uymaya zorlayacaginiz bir iki temel kurala dikkat etmek bir baslangic olabilir.
1. Bir veri veritabaninda sadece ve satece tek bir yerde tanimli olmali. Tekrar etmemeli. ornegin NOT tablosuna ogrenci adini koymamali. vb..
2. Belki 1. kurala uygun bir tasarim yaptiniz ama bazen de seytan soyle durter. "Eger bu sekilde olursa buradan bazi sorgulari almak zor olur. En iyisi sen su tabloya su alani da koy sonraki isin kolay olsun." Bu durumda kulak asmamak lazim. Eger siz sonradan alacaginiz bir raporu satir satir kendiniz olusturabiliyorsaniz. Yani sunu suradan bunu buradan vs seklinde bir mantik ile bu raporun bir insan tarafindan elle uretilebilecegine kanaat getiriyorsaniz bunu yapacak sql cumlesini yazamasaniz bile yazabilen biri mutlaka vardir. O kisiyi de bu grupta eminim kolayca bulursunuz..

mesaji fazla da uzatmamak lazim.

Kolay gelsin....
aydogan46
Üye
Mesajlar: 115
Kayıt: 11 Haz 2003 02:59
Konum: ankara
İletişim:

Mesaj gönderen aydogan46 »

eyvallah. nette birçok delphi ile ilgili foruma girdim ama boylesi gerçekten yok. yabancılarda dahil. helal olsun. yardımlarınız için teşekkürler ...
Cevapla