Forum

İlişkili tablolar v...
 
Bildirimler
Hepsini Temizle

İlişkili tablolar ve insert nasıl yapılır?

8 Yazılar
3 Üyeler
0 Reactions
2,829 Görüntüleme
(@leo57)
Gönderiler: 15
Eminent Member
Konu başlatıcı
 

Merhabalar ,


Sizlerden bir konuda yardım rica ediyorum.   Ornek olarak 3 adet tablo ve alanlarını yazacağım. Not:  (Ana idler ) PrimaryKey ler otomatik artan tipdeler.


 


Tblisimler (isimid , isim )


TblSoyisimler (Soyisimid , isimid ,Telid , Soyisim )


Tbliletisim ( Telid , Telno )


1.sorum :  Buradaki ilişki nasıl olmalıdır ?


( Benim görüşüm , Tblisimler deki isimid' yi TblSoyisimler deki isimid'nin üzerine bırakıp ilişki oluşturacağım. ve Tbliletisim deki Telid alıp  TblSoyisimler deki Telid'nin üzerine bırakarak ilişki oluşturmam gerekir sanırım. Tabi benim görüşüm. Siz uzman arkadaşlar yanlışlarımı düzeltirseniz bende öğrenmiş olacağım inşallah.


2.Sorum:  3 adet tablomuz var (Yukarıda belirttiğim tablolar )   Tek form üzerinden yani birtane kaydet butonuna tıklayarak  insert işlemini nasıl yaptırabilirim?


Ben acemiyim anlayabileceğim şekilde yardımcı olursanız çok makbule geçersiniz. Uzun zamandır uğraşıyorum bir türlü yapamadım.:(


 


 

 
Gönderildi : 25/01/2011 21:08

(@rahmidilli)
Gönderiler: 2458
Famed Member
 

Merhabalar ,

Sizlerden bir konuda yardım rica ediyorum.   Ornek olarak 3 adet tablo ve alanlarını yazacağım. Not:  (Ana idler ) PrimaryKey ler otomatik artan tipdeler.

 

Tblisimler (isimid , isim )

TblSoyisimler (Soyisimid , isimid ,Telid , Soyisim )

Tbliletisim ( Telid , Telno )

1.sorum :  Buradaki ilişki nasıl olmalıdır ?

( Benim görüşüm , Tblisimler deki isimid' yi TblSoyisimler deki isimid'nin üzerine bırakıp ilişki oluşturacağım. ve Tbliletisim deki Telid alıp  TblSoyisimler deki Telid'nin üzerine bırakarak ilişki oluşturmam gerekir sanırım. Tabi benim görüşüm. Siz uzman arkadaşlar yanlışlarımı düzeltirseniz bende öğrenmiş olacağım inşallah.

2.Sorum:  3 adet tablomuz var (Yukarıda belirttiğim tablolar )   Tek form üzerinden yani birtane kaydet butonuna tıklayarak  insert işlemini nasıl yaptırabilirim?

Ben acemiyim anlayabileceğim şekilde yardımcı olursanız çok makbule geçersiniz. Uzun zamandır uğraşıyorum bir türlü yapamadım.:(

 

 

Merhabalar, 

Bu tabloları kim tasarladı? Örnek olsun diye mi çalışıyorsunuz? Tasarım başta yanlış olmasın?

 
Gönderildi : 26/01/2011 13:02

(@leo57)
Gönderiler: 15
Eminent Member
Konu başlatıcı
 

Merhaba Rahmi Bey,


Dediğiniz gibi örnek olarak çalışıyorum. Bu olayı öğrenince başka projelerde kullanacağım inşallah:)


Yukarıda tabloları ben oluşturdum ve ben tasarladım. Belki tablolarda tasarımda yanlışlık olabilir. Ama siz gereken düzeltmeyi yapabilirsiniz.


Tablolarımdaki alanların değerlerini de belirteyim.


Tblisimler


isimid (int) ' Primary Key otomatik artan


 isim (varchar 50)


-------


TblSoyisimler


Soyisimid (int) ' Primary Key otomatik artan


isimid (int)


Telid (int)


Soyisim (varchar 50)


Tbliletisim


Telid (int) ' Primary Key otomatik artan


Telno (char 10)

 
Gönderildi : 26/01/2011 14:18

(@rahmidilli)
Gönderiler: 2458
Famed Member
 

Kolay gelsin.

Bence önce teorik olarak çalışmak lazım. Veritabanı tasarım ve yönetimi ilgili kitaplarla ilişkisel veri tabanı, nesneye dayalı veri tabanlarıyla ilgili güzel örnekler olanları tercih ediniz. Bir telefon numarası için bir tablo neden açılır?açılmalı mı? gibi sorulara cevap vermek öncelikli olacaktır.

 
Gönderildi : 26/01/2011 14:54

(@leo57)
Gönderiler: 15
Eminent Member
Konu başlatıcı
 

Merhaba Rahmi Bey,


Ben örnek olarak tablo oluşturdum. Doğrudur telefon bilgisi için ayrı tablo oluşturmaya tabi gerek yoktur. Ama benim öğrenebileceğim şekilde sizlere sormak istemiştim. Eğer örnek tablolar sorun oluyor ise şöyle yapalım. Başka bir örnek tablolar yazayım buraya. Aynı işlemi bu tablolar üzerinde nasıl yapabiliriz yardımcı olursanız sevinirim.


 


TblMusteriler ( MusteriID , MusteriAd , MusteriAdres , MusteriTelefon )


Siparisler ( SiparisID , MusteriID , SiparisTarih , SiparisAciklama )


SiparisDetay ( SiparisDetayID , SiparisID , SiparisAdet , BirimFiyat , ToplamFiyat )


Tşk.Syg.

 
Gönderildi : 26/01/2011 16:19

(@rahmidilli)
Gönderiler: 2458
Famed Member
 

Siparişler tablosundaki musteriID tblmusterilerle ilişkilendirilecek.

siparisdetay tablosundaki SiparisID siparişlerdeki siparisID ile ilişkilendirilecek.

Öteki işlem için tecrübeli yazılımcılar daha iyi yol göstereceklerdir.

 

 
Gönderildi : 26/01/2011 18:59

(@leo57)
Gönderiler: 15
Eminent Member
Konu başlatıcı
 

İlginize tşk.ederim Rahmi Bey.

 
Gönderildi : 26/01/2011 19:15

(@ferhatkaratas)
Gönderiler: 100
Estimable Member
 

Selam,

detay yerine, sizi yönlendirecek anahtar kelimelerle özet geçicem. 

- Bir button'la birden fazla tabloya (tek insert cümleciği ile) insert yapamazsınız. Her tabloya ayrı ayrı insert işlemini yapmanız gerekir. 

- Tabloyu kurarken ID leri Primary Key, Foreign Key olarak eşleştireceksiniz. Mesela müşteri tablosundaki primary key olan MüsteriID'yi, sipariş tablosunda yine MusteriID ile karşılarsınız. Diğer tabloları da bu mantıkta ilişkilendirirsiniz.

- Tablo oluştururken index'lerini de kurmayı unutmayın. Yüksek kayıt sayısına sahip tablolarda index'ler hayati öneme sahiptir. Hangi alanlardan sorgu çekilecekse oraya index koyun.  (örn: select Ad, soyad from tablo where telefon = 'xxxx') burda telefon alanında index olmasında fayda vardır. İndex yapısı, eksik indexleri sorgulama konusunda Turgay beyin güzel bir makalesi var . http://www.cozumpark.com/blogs/sql/archive/2010/12/18/sql-server-dmv-ler-ile-eksik-_3101_ndex-leri-sorgulama-_3101_dentify-missing-_3101_ndexes-using-sql-server-dmvs.aspx

- Primary key tanımlarken, veri tipinin int mi uniqueidentifier mı olacağına karar verin. int en basit yöntemdir, fakat büyük uygulamalarda tablolar arası data taşırken (merge) id ler çakışabileceğinden bazı durumlarda uniqueidentifier kullanmak mantıklı olabilir. Mesela, microsoft'un geliştirdiği membership framework'lerin tamamında id olarak uniqueidentifier kullanılır.

 
Gönderildi : 01/02/2011 15:53

Paylaş: