Bilgisayar-Bilişim Teknolojileri
Ana Sayfa
Bilişim Teknolojileri Forumu Son Konuları
24 Saat
Bilişim Teknolojileri - Formatör - Bilgisayar Öğretmeni Kayıt
Kayıt Olun
iletişim
iletişim
Detaylı Arama
Arama
Yeni Konu Aç
Yeni Konu Aç

Sql'den NoSql Tasarım Nasıl olmalı. ?

Konu, 'Veritabanı Geliştirme' kısmında ugurkorkmaz tarafından paylaşıldı.


Etiketler:
  1. ugurkorkmaz

    ugurkorkmaz Seçkin Üye Seçkin Üye

    Kayıt:
    20 Nisan 2014
    Mesajlar:
    959
    Beğeni:
    116
    Merhabalar;

    Elimde Mysql için tasarlanmış bir veritabanı mevcut. Bunu noSql bir çözüm olan mongodb'ye migrate etmek istiyorum. Daha önceden nosql ile tasarım yapmadım. Şu şekilde yaparsam sağlıklı bir çözüm olur mu danışmak istiyorum. Burada özellikle "food" tablosundaki kısımlar önemli bir hal alıyor. Açıkça yazmak matıklısı.

    Soru : Yorumlar tablosunu ayrı bir collection da tutmak istiyorum. Çok fazla yorum ve beğeni olabilir. Fakat burada özelllikle yemek adımlarını ve malzeme listesini foods collectionında kalması bana mantıklı geliyor. Zira bunlar 10-15 adımda bitiyor. Ne şekilde olabilir. Yardımlarınızı bekliyorum. Saygılar. Özellikle foods collectionının şişmesi gibi bir durum olabilir mi. ?


    foods :
    _id:ObjectID
    food_name : "İzmir Köfte",
    food_time: "40 dk",
    person_numb:"4 Kişilik",
    user_id : ObjectID,
    tarifKategori : ["Ana Yemekler", "Sulu Yemekler"],
    food_image:"https://.......................",
    comment:[
    {
    comment_id:ObjectID,
    comment_id:ObjectID,
    comment_id:ObjectID
    }
    ],

    tarif_malzemeler:[
    {
    tarif_id:ObjectID,
    tarif_id:ObjectID,
    tarif_id:ObjectID
    } ],

    tarifBegeni:[
    {
    begeni_id:ObjectID,
    begeni_id:ObjectID,
    begeni_id:ObjectID,
    } ]
     

    Ekli Dosyalar:

    kaeii bunu beğendi.
  2. buzdagi83

    buzdagi83 Seçkin Üye Seçkin Üye

    Kayıt:
    27 Eylül 2007
    Mesajlar:
    496
    Beğeni:
    829
    Hocam tablo gayet uygun tasarlanmış duruyor. Ancak ben olsam yorum ve beğeni tablosunda olduğu gibi, tarirfler tablosunu da ayırırdım. Tarifte değişiklik yapıldığında food tablosunda değil, tarif tablosunda değişilik yapılmış olur. İleride bir yemeğin birden fazla tarifi de eklenebilir. Böyle yapsanız da şişme olmaz ama tariflerin ayrı bir tablo şeklinde tutulması db tasarımı açısından daha ideal olur.
     
    Son düzenleme: 19 Temmuz 2021
    ugurkorkmaz bunu beğendi.
  3. ugurkorkmaz

    ugurkorkmaz Seçkin Üye Seçkin Üye

    Kayıt:
    20 Nisan 2014
    Mesajlar:
    959
    Beğeni:
    116
    Tek tarif olacağı için bu şekilde düşündüm hocam. Yorum ve beğeni kısmını mecburen dışarıya aldık. Tarif de belli bir adım olduğu için çok fazla veri gelmeyeceğini düşündüğüm için food tablosunda tutayım dedim.
     
    buzdagi83 bunu beğendi.
  4. kaeii

    kaeii Seçkin Üye Seçkin Üye

    Kayıt:
    7 Kasım 2010
    Mesajlar:
    334
    Beğeni:
    111
    https://scholar.google.com/scholar?hl=tr&as_sdt=0,5&q=migrate+from+rdbms+to+nosql&btnG= bu baslıgı ıncelmenızı tavsıye ederım
     
    ugurkorkmaz bunu beğendi.
  5. Parhelion

    Parhelion Süper Üye Süper Üye Seçkin Üye

    Kayıt:
    22 Mart 2008
    Mesajlar:
    1.037
    Beğeni:
    108
    Hocam nosqlde tasarımı sizin uygulamada ne tarz sorgular yapacağınız belirler.

    Örneğin kullanıcılar ve yorumlarını tutmak istiyorsunuz diyelim. Sqlde bunun tasarımı bellidir. Kullanıcılar tablosu olur, yorumlar tablosu olur ve de bunları idleri üzerinden eşleştireceğiniz bir eşleme tablonuz olur.

    Aynı senaryoyu nosqlde gerçekleştirirken ise nasıl yaklaşacağınız ileride ne tarz sorgular kullanacağınıza bağlıdır. örneğin 'tüm kullanıcıların' yorumlarında arama yapmanız gereken bir sorgunuz olacaksa tasarım sqldeki gibi olmalıdır. Yani yorumlar ayrı bir collectionda tutulur ve 3. bir collection ile eşleme yapılır. Fakat yorumlar üzerinde tüm kullanıcıların taranması gereken sorgularınız olmayacak, sorgular yalnızca tek kullanıcı düzeyinde kalacaksa her kullanıcı nesnesinde bir dizi tanımlayıp yorumlarını da burada tutabilirsiniz.

    Peki ikinci gibi tasarlayıp tüm kullanıcılar üzerinden sorgu yapamaz mıyız? Veritabanının küçük boyutlarda kalacağı belliyse tabi ki yapabiliriz fakat veri büyüdükçe ciddi performans kayıpları ve kaynak tüketimi kaçınılmaz olur.
     
    ugurkorkmaz bunu beğendi.

Sayfayı Paylaş /bbnetsosyal