SORU
8 Kasım 2010, PAZARTESİ


Nasıl NoSQL kayıt ilişkiler takip edebilirsiniz?

Yabancı anahtarlar eşdeğer ve KVP veya NoSQL Belge veritabanı dizinleri anlamaya çalışıyorum. Bu yana hiçbir önemli tabloları (Ekle tuşları işaretleme bir ilişki iki nesne arasında) ben gerçekten şaşkın olarak nasıl mümkün olacaktır veri almak için bir yol olacağını yararlı için normal web sayfaları.

Diyelim ki bir kullanıcı var ve bu kullanıcının site üzerinde birçok yorum bırakır. Tek yol düşündüğüm için takip edin kullanıcılar yorum için 1) Embed onları kullanıcı nesne (bir işe yaramaz) 2) oluşturmak ve korumak user_id:comments değer içeren bir liste her yorum anahtar [yorum:34 açıklama:197, vb...] böylece ben getir onları gerektiği gibi.

Ancak, yakında bir anahtar "active_comments" 30 milyon içerebilir kimlikleri içinde bunu yapma . denilen gibi başka şeyler izlemek için kullandığınızda, bir tuğla duvara isabet edecek ikinci örnek alarak ^em>bir TON masrafher sayfada sadece bazı yeni aktif yorum bilmek sorgulamak için. Ayrıca çok eğilimli oluryarış koşullarıçok sayfa aynı anda güncelleme yapmayı deneyebilirsiniz.

Nasıl NoSQL bir veritabanı aşağıdaki gibi ilişkiler izleyebilir miyim?

  • Bir kullanıcının tüm yorumları
  • Tüm etkin yorum
  • Tüm mesajları [anahtar kelime] ile etiketlenmiş
  • Bir kulüp ya da tüm kulüpleri bir öğrenci tüm öğrenciler

Ya da bu konuda yanlış düşünüyorum?

CEVAP
18 Kasım 2010, PERŞEMBE


"NoSQL" aynı şeyi azaltmak için: . çok-çok dernekler saklamak için nasıl tüm cevapları ^strong>gereğinden veri depolama.

NoSQL veri varlıklar arasındaki ilişkileri temel veritabanı tasarımı yok. Size karşı çalışır veritabanı sorguları dayalı tasarım. Aynı kriterleri kullanırsınız için denormalize bir ilişkisel veritabanı: eğer daha önemli bir veri var uyum (sanırım değerlerini virgülle ayrılmış listesi yerine bir normalize tablo), sonra da böyle yapmıyor mu.

Ama bu kaçınılmaz olarak diğer sorgu türleri (belirli bir kullanıcının herhangi bir makale için yorum) pahasına sorgu türü için (belirli bir madde için herhangi bir kullanıcı tarafından (yorum) optimize eder. Eğer uygulamanız sorgular her iki tür de aynı derecede optimize etmek için ihtiyaç varsa, denormalize gerekir. Ve aynı şekilde, eğer ilişkisel bir şekilde verileri kullanmak gerekiyorsa NoSQL çözümü kullanmamalısınız.

Veri kümelerini birbirleri ile senkronize olacak gereksiz olduğunu denormalization ve yedekli bir risk var. Bu bir deniranomali. Normalize ilişkisel bir veritabanı kullandığınızda, VERİTABANI anomalileri önler. NoSQL içinde normal dışı bir veritabanı veya, sizin sorumluluğunuz anomalileri önlemek için uygulama kodu yazmak olur.

NoSQL bir veritabanı anomalileri önlemek için zor işi yapmak için çok iyi olurdu. Bu ilişkisel paradigma yapabileceği bir paradigma var.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Lamborghini

    Lamborghini

    13 Aralık 2005
  • Liz Morgan

    Liz Morgan

    4 Aralık 2011
  • wwjoshdo

    wwjoshdo

    25 Mayıs 2009