key tanımlamadan ilişkisel veritabanı oluşturma

Firebird ve Interbase veritabanları ve SQL komutlarıyla ilgli sorularınızı sorabilirsiniz. Delphi tarafındaki sorularınızı lütfen Programlama forumunda sorunuz.
Cevapla
Kullanıcı avatarı
kadirkurtoglu
Üye
Mesajlar: 748
Kayıt: 22 May 2005 01:20
Konum: Uzakta Görünen Tepeden...

key tanımlamadan ilişkisel veritabanı oluşturma

Mesaj gönderen kadirkurtoglu »

öncelikle selamlar. fb vt 1.5 kullanıyorum. IBExpert ile 2 adet tablo tasarladım tablo isimlerini master ve detail olarak verdim master tablo için kayitno integer, cari_kodu varchar 10, adi varchar 10 ve soyadi varchar 10
detail tablo için ise kayitno integer, cari_kodu varchar 10, tarih date, aciklama varchar 30, borc decimal, alacak decimal
yukarıda alan isimleri verilen iki tabloda da hiç index tanımı yapmadım.
master tablo için sql kodu

Kod: Tümünü seç

select * from master
detail tablo için sql kodu

Kod: Tümünü seç

select * from detail where cari_kodu =:cari_kodu

şeklinde girdim
program da hiç bir hata olmadan çalışıyor..
ilşkisel vertabanı mantığı ile çalışıyor..
birden fazla tablonun aynı ortak alan isminden yararlanarak tek çatı altında toplamak yani çok fazla tablo ve bu tabloların hepsi ortak isimlerle key alan ve foraign key olmadan yapılacak. bu türde bir tablo tasarımı ve ilişkisel vertabanı mantığı doğrumudur. ilerde sorun yaşarmıyım.
Bir mum, yanındaki mumları tutuşturmakla,
ışığında hiç bir şey kaybetmez.

Mevlana

OS win.10, IDE Delphi 10.3, RDBMS Firebird and MSSQL, BROWSER Chrome
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Mesaj gönderen aslangeri »

s.a.
bu şekilde çalışır ama
ama yanlış
ve büyük ihtimalle sorunlarla karşılacaksın.
kolay gelsin
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Kullanıcı avatarı
kadirkurtoglu
Üye
Mesajlar: 748
Kayıt: 22 May 2005 01:20
Konum: Uzakta Görünen Tepeden...

Mesaj gönderen kadirkurtoglu »

yukarıda bahsettiğim örnek çalışmayı promram yazan bir firmanın internet sitesinden firebird vt ile tasarlanmış uygulamasını indirdim. IBExpert ile data dosyalarını açtığımda hiç bir tabloda key alanların olmadığını farkettim. bunun üzerine bende bu konuyla alakalı küçük bir deneme yaptım. şimdi data sını açmış olduğum programın bu suretle hatalı tasarlandığını mı düşünmeliyim bu konuda kararsızım.. bende diğerleri gibi vt ye paradoxta başladım. firebird e daha sonra geçtim. firebird bugüne kadarki izlenimerimde gayet iyi hem ücretsiz hemde borland dan desteğinin sürekliliği beni bu saatten sonra friebird den vazgeçiremez. ancak kısa zamanda müptelası olduğumuz bu küçük görünen büyük dostumuz firebird ü ehil olarak kullanmasını da öğrenmek istiyorum. firebird ile ilgili dökümanların ingilizce olması bu büyük vt canavarının inceliklerini öğrenmeyi zorlaştırıyor.. delphi öğrenmeye kitap ile başladım. bugüne kadar beni eğiten kitaplarım. firebird den bahsetmiyor. piyasada interbase ile ilgili kitabi bilgi çok az. o da yüzeysel geçilmiş. şu ana kadar iyi bir vt tasarımı oluşturamadığım için projeler askıda bekliyor. aslangeri arkadaşıma teşekkür ediyor konuyla ilgilenen arkadaşlardan fikirlerini bekliyor, saygılarımı sunuyorum...
Bir mum, yanındaki mumları tutuşturmakla,
ışığında hiç bir şey kaybetmez.

Mevlana

OS win.10, IDE Delphi 10.3, RDBMS Firebird and MSSQL, BROWSER Chrome
Kullanıcı avatarı
vedatkaba
Kıdemli Üye
Mesajlar: 866
Kayıt: 06 Oca 2004 06:50
Konum: DARICA/GEBZE

Mesaj gönderen vedatkaba »

Eğer key yoksa mutlaka bir integer alan vardır diye düşünüyorum.Çünkü normalde düşündüğünüz zaman iki taplodan kayıt çekiceksiniz mutlaka bir ortak alan olma kzorunda.ve o alanlarda ki veriler karşılaştırılarak ilişki kurulmakta.keylere şart değil tabiki integer alan tanımlarsınız key olarak belirtmezsiniz ama ilişki kurulabilir.kolay gelsin.
***********************************
Kamil odur ki; koya dünyada bir eser,
Eseri olmayanın, yerinde yeller eser.

***********************************
Kullanıcı avatarı
selimr
Üye
Mesajlar: 556
Kayıt: 16 Eki 2003 02:07

Mesaj gönderen selimr »

key alan ve foraign key olmadan yapılabilir..

key ve foraing key kullanarak vt tarafında bu ilişkiden yararlanarak
kontroller otomatik yapılmış olur.. yani bu ilişki ye uymayan kayıt girişleri yapılmaz..

fakat bu kontrolleri delphi tarafında kendin yaparsan da olabilir..

fakat detay tablodaki cari koduna göre bir index in olması olayı daha hızlı çalıştırır.. Çünkü sql bu index i otomatik olarak kullanır ve performans artar.
Kullanıcı avatarı
kadirkurtoglu
Üye
Mesajlar: 748
Kayıt: 22 May 2005 01:20
Konum: Uzakta Görünen Tepeden...

Mesaj gönderen kadirkurtoglu »

ben bu şekilde çalışmayacam tabiki. tablolarımda mutlaka key index tanımlayacağım ancak benim key tanımlama yapmadan ilşkisel veritabanı oluşturmaktan ziyade maksadım foreign key'i (ilişki alanını) tablo tasarımı yaparken belirlemek istemiyorum. ilşki alanları olsun bunlar uygun şekilde key veya indexlensin. daha sonra delphi tarafında ilşki alanlara göre kurulması. yani kısacası tabloyu tasarlarken foreign key le bu işi sonlardırmak istemiyorum. bir tablo başka tablolarla bağlantı kurup başka master tablonun detaili olabilir. o maksatla sorduğum bi soruydu. yine de cevap veren arkadaşlara teşekkür ediyorum...
Bir mum, yanındaki mumları tutuşturmakla,
ışığında hiç bir şey kaybetmez.

Mevlana

OS win.10, IDE Delphi 10.3, RDBMS Firebird and MSSQL, BROWSER Chrome
Cevapla