none
SQL Tablo İlişkilendirmeleri Hakkında RRS feed

  • Soru

  • Merhaba,

    MSSQL veritabanında çok tecrübeli değilim danışmak istediğim bir konu var. Veritabanı ilişkilendirmelerinde  tablonun 1 mi N mi olduğunu nasıl anlıyoruz? Bunun pratik bir yöntemi ve ya kuralı vs var mıdır? ilişkilendirmelerinde örnek veriyorum Bir Ogrencinin birden fazla öğretmeni olabilir aynı şekilde bir öğretmenin de birden çok öğrencisi olabilir o halde bu N-N ilişki türüdür şeklinde kafamızda algoritma kurarak bir yere kadar belirleyebiliyoruz fakat bu işlem büyük projelerde misal 15-20 tablolu projelerde nasıl oluyor? Her zaman tek tek tabloları ele alıp mantıkla ve ya algoritma kurarak mı yapıyoruz bu işi? Genelde araştırdığım kaynaklar bu şekilde mantık kurarak tabloları ilişkilendiriyor fakat olayı tam olarak kavrayamadım. Konu hakkında tecrübesi fikri olan yardımcı olabilirse çok sevinirim. 


    • Düzenleyen Fırat Ç 13 Kasım 2019 Çarşamba 17:00
    13 Kasım 2019 Çarşamba 16:58

Tüm Yanıtlar

  • Olay aslında basit ve aynen dediğiniz gibi. Bir öğretmenin N tane öğrencisi olabilir, öğrencinin de M tane öğretmeni, sonuçta N-to-M, yani many-to-many iliski.

    Iliskinin 2 tarafındaki tablolara bakarak iliskinin turunu belirliyoruz. Ornegin Musteriler ve Faturalar. 

    Bir müşterinin N tane faturası olabilir, ancak her fatura sadece 1 müşteri ile ilgilidir.

    Tum bunları veritabanı tasarımı sırasında düşünüp yapıyorsunuz. Eger aslında sormak istediğiniz var olan sistemde nasıl iliskileri cikardiginiz ise, tum bu iliskiler sistem tablolarında kayıtlı (tabii ki yapıldıysa). Kolay bir yolu database diagram oluşturmak.



    How to create a Minimal, Reproducible Example
    The way to Go.
    World's most advanced open source (object-) relational Database.
    Flutter (for mobile, for web & desktop.


    • Düzenleyen CetinBasoz 13 Kasım 2019 Çarşamba 17:20
    13 Kasım 2019 Çarşamba 17:18
  • Hocam merhaba,

    Tavsiyeniz için teşekkür ederim. Sorduğum şey açıkladığınız kısım yani ilişkilendirilmemiş tabloları tek tek ilişkilendirmek. Açıkçası yanlış ilişkilendirmekten çekindiğim için örneğin 1-N yapacağıma dalgınlıkla N-M yaparsam sorun yaşar mıyım? Diye düşünürken aklıma geldi acaba daha güvenli bir yolu ve ya pratik bir çözümü taktiği var mıdır diye düşündüm fakat açıklamalarınıza göre büyük projelerde onlarca tabloyu tek tek algoritma kurarak yapmaktan başka çare yok sanırım yapacak bir şey yok tekrar teşekkürler :)  

    13 Kasım 2019 Çarşamba 17:26
  • Pratik cozum derken? O kadar tabloyu yaratmak çok daha zor, iliskilerini düşünmek isin kolay kısmı :)

    Herseyi onceden dusunememek de cabası. Ornegin, bir kisinin bir adres kaydını yaparsınız, bir de bakarsınız ki kisilere N tane adres kaydı gerekiyor. Kolay hemen kolonlari ayirayip bir tablo yapayım dersiniz, bu sefer de "ama ayni adreste oturanlar da var" diye bir de bakarsınız ki birkaç kolondan birkaç tabloya ve many-to-many iliskiye gelmişsiniz. Keske kolay bir yolu olsaydı.



    How to create a Minimal, Reproducible Example
    The way to Go.
    World's most advanced open source (object-) relational Database.
    Flutter (for mobile, for web & desktop.

    13 Kasım 2019 Çarşamba 17:34
  • Pratik cozum derken? O kadar tabloyu yaratmak çok daha zor, iliskilerini düşünmek isin kolay kısmı :)

    Herseyi onceden dusunememek de cabası. Ornegin, bir kisinin bir adres kaydını yaparsınız, bir de bakarsınız ki kisilere N tane adres kaydı gerekiyor. Kolay hemen kolonlari ayirayip bir tablo yapayım dersiniz, bu sefer de "ama ayni adreste oturanlar da var" diye bir de bakarsınız ki birkaç kolondan birkaç tabloya ve many-to-many iliskiye gelmişsiniz. Keske kolay bir yolu olsaydı.



    Hocam merhaba 

    Yanlış anlaşılmasın :) Pratik çözümden kastim tabloların ilişkilendirmelerinin daha güvenli hale getirilmesi, hata yapma olasılığını azaltmak. Yoksa tabi ki keşke tek sorunumuz ilişkilendirme olsa :)

    13 Kasım 2019 Çarşamba 17:43
  •  . Keske kolay bir yolu olsaydı.



    How to create a Minimal, Reproducible Example
    The way to Go.
    World's most advanced open source (object-) relational Database.
    Flutter (for mobile, for web & desktop.

    Graph'larda bir nebze daha kolay

    www.cihanyakar.com

    14 Kasım 2019 Perşembe 05:42