MySQL büyük bir veritabanı oluşturmak için bana yardımcı

4 Cevap php

Her ülke büyük şehirlerde bu kavramı kaplıdır için biz, küresel akıllıca iş için bir web sitesi inşa ediyoruz.

Ben PHP Mysql İnsanlar bazı öneriler gerek.

I tüm şehirlerde veya çoklu veritabanları için tek databse oluşturabilirsiniz. Bu sistemde şehirler arasındaki ilişkileri içerdiğinden, her odası yaklaşık 50 ağ için tablolar ve diğer bazı tablolar gerekir.

Her odası için ayrı veritabanları oluşturabilirsiniz Eğer biz 1000 şehirler var, çünkü neredeyse 50 * 1000 tablolar gerekir olacaktır.

Yani benim sistem için veritabanı oluşturmak nasıl önerilerinizi verin.

Thank you Ravi

4 Cevap

Sorunuzu okuduktan sonra sana verebileceğim tek öneri veritabanları hakkında bilgi revize etmektir ... Ben ... web bu konuda size yardımcı olabilir bir şey eksik olduğunu düşünüyorum.

Eğer 2 nesne Şehir ve Odası'nı varsa Neyse size 2 tablolar gerekir:

  • Tablo1: şehirler
  • İlişkisi: 1-n
  • Tablo2: odaları

Sıvı tablo numaraları ile veritabanı tasarımlar kaçının. Tablolar satırlar değildir. Her şehir için yeni bir tablo olması mantıklı değil. Şehirler her bir ad, konum ve işinizle alakalı diğer ortak özellikleri bir sürü var. Bu aynı yapıyı paylaşan bir sürü tabloları olması mantıklı değil. Ben bir 'odasının' şehirlerde, ülkelerde bir tablo için bir tablo ve başka bir tablo oluşturmak öneririz. Bir ülke ile her şehir ilişkilendirin. Eğer şehirde binlerce çalışma bekliyorsanız, iyi ki iyi. MySQL bir tablo kolayca sunucuların kaynaklarının çok fazla kullanmadan satır binlerce işleyebilir. Değişken alanları gerektirecek her şehir hakkında benzersiz bir şey, varsa, size farklı bunu yapmak isteyebilirsiniz, ama masalarda binlerce oluşturmak için bir ihtiyaç muhtemelen orada asla.

ilişkisel veritabanı tasarımı belirler: sadece bir veritabanı. belirli koşullar altında - - Tam olarak ne yaptığını bilen bir yanlısı tarafından uygulanan bir performans kesmek için bir seçenek (ama ne ben ne vardır), ama normalde sadece durumu zorlaştırıyor ve sistem yapar çoklu veritabanları üzerinde yukarı verilerini bölerek olabilir yavaş ve korumak için daha zor.

soru: hatta kirli performans kesmek gerekiyor? şehirde binlerce başına bir performans sorunu değil sahip, tüm iyi endeksleri bağlıdır, sunucu (lar), tuning, iş yükü, ...

Ne olursa olsun kentin, aynı ne normalleştirmek gerekir. Ya odası.

Bu düşünmek bir yolu size ihtiyacınız olan tüm farklı kişilere bakmaktır. Açıkçası 'şehir' bunlardan biridir. Tüm şehirleri temsil etmek için tek bir tablo kullanabilirsiniz olamaz hiçbir neden olmamalıdır. Tamam, şimdi bir odası bir daha alan ile hangi şehir belirleyebilir. Şimdi tüm odaları tek bir tabloda olabilir. Bu aynı zamanda bir oda sadece bir şehir aittir söylemek için bir yol sağlar, ancak bir şehir birden odasına sahip olabilirsiniz. Bu bir-çok ilişkisi denir.

Nesneye (örn. şehirler) aynı türleri arasındaki ilişkiler daha karmaşıktır. Deniyor özellikle ne ve ne her tarafı denir: Siz oldukça ne ilişki olduğunu tanımlamak gerekir. Bir çok-çok ilişki gerekiyorsa, yani bir şehir birkaç diğer şehirlere bağlanır, bu ilişkileri listelemek için başka bir tablo gerekir. Bu keşfetmek biraz Bu cevap kutusunun kapsamı dışındadır, bu yüzden özellikle normalleşme veritabanı tasarımı hakkında iyi bir kitap ya da web sayfası bulmak öneririz.