none
SQL'de İlişkili Tablolar RRS feed

  • Soru

  • Firmalar, Firma Personelleri, Çalışanlarım ve Tedarikçileri tutan tablolarım var ve ben bunların telefonlarını bir tabloda tutmak istiyorum. Telefonlar tablomda sahipid diye bir kolona bütün bu tabloların PK alanlarını nasıl bağlarım ? Yoksa tüm bu  telefonları ayrı tablolardamı tutmalıyım. Aynı şey adresler ve emailler için de geçerli. 
    • Düzenleyen Serkan Bark 19 Mart 2012 Pazartesi 09:01 baslik
    15 Mart 2012 Perşembe 18:38

Yanıtlar

  • Merhaba,

    Eğer Primary Key değerleriniz tekrar etmeyecek GUID gibi bir değerse doğrudan ilişki kurabilirsin. Fakat Identity gibi tekrar eden sayılsa bir değer ise bir kolon daha açıp telefon numarasının tipini belirtmelisiniz.


    http://ismailadar.com/

    • Yanıt Olarak İşaretleyen Serkan Bark 19 Mart 2012 Pazartesi 09:01
    16 Mart 2012 Cuma 11:20

Tüm Yanıtlar

  • Merhaba,

    Eğer Primary Key değerleriniz tekrar etmeyecek GUID gibi bir değerse doğrudan ilişki kurabilirsin. Fakat Identity gibi tekrar eden sayılsa bir değer ise bir kolon daha açıp telefon numarasının tipini belirtmelisiniz.


    http://ismailadar.com/

    • Yanıt Olarak İşaretleyen Serkan Bark 19 Mart 2012 Pazartesi 09:01
    16 Mart 2012 Cuma 11:20
  • Bunun icin ara tablo gerekiyor ne yazik ki. Ayni telefon ve/veya adres birden fazla kisiye ait olabilir. Ayni zamanda kisilerin birden fazla telefon/adresleri olabilir.

    (Firma): FirmaId, FirmaAdi ....

    (Telefon): TelefonId, ulkeKodu, sehirKodu, telNo, dahili ...

    (AraTablo): FirmaId, TelefonID, ... opsiyonel diger alanlar (not: eger 3. bir kolon yok ise Entity framework bu ara tabloyu gizliyor ve yerine sadece diger tablolarda navigasyon propertyleri oluyor:

    FirmaAdi, ..., Telefonlar (List<Telefon>)

    gibi.

    Sanirim AdventureWorks ornek veritabaninda bu sekilde adresler vardi.


    Not: Telefonlar, adresler gibi antiteler icin ayni sey gecerli. Ancak email sanirim kisiye ozel (nadir durumlarda ayni emaili birden fazla kisi kullanabilir). Neredeyse primary key gibi. Dogrudan Firma, Kisi tablosu ile baglantili olmasi daha efektif gorunuyor (emailTablo: kisiID, email).
    20 Mart 2012 Salı 08:25