Forum
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 ,
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?
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)
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.
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.
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.
İlginize tşk.ederim Rahmi Bey.
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.