1 tabloya kaydetmek veya birden çok tablo oluşturmak?

2 Cevap php

Ben ikilem durumda değilim, ve bir daha iyi olduğunu bilmiyorum. Web siteme 100 + + (veya daha fazla) oyun var diyelim. Ben her oyun için puanlar saklamak istiyorum. I 1 Tablodaki tüm yüksek puanlar saklamak veya her oyun kendi tablo vardır mıyım?

Karşılaştırın:

1 tablo: 1 tablo satırları (veri) bir sürü içerir. Her kullanıcı oyun farklı oyun bu tabloya puan sunacaktır. Birçok kullanıcı aynı anda göndermeniz durumunda ne olacağını bilmiyorum. Bu tablo yapısı olmalıdır: gameid, isim, skor. Yani ben sadece 1 php sayfasında ne oyunun yüksek puanlar görmek için 1 sorgu yapmak.

Kullanım birden fazla tablo (her oyun kendi tablo vardır), ben daha çok tablo var ama çok daha az satır (veri). Isterseniz

Hangisi uzun vadede daha iyi? Nasıl sql performansı hakkında?

PHP ve MySQL kullanıyorum

2 Cevap

Ben oyuncu, oyunlar için bir ve player_id, game_id ve yüksek puanlar değeri ile yüksek skorlar için bir çok-çok tablo için bir tablo yapmak istiyorum.

Discussion

If you have 100.000 players and 500 games you can get to have a maximum of 50.000.000 entries. But they are numerical and very short. It will be a good idea NOT to serve this highscores using live queries but results from cached files. This is how almost everybody is doing. You update the cached lists of highscores each day. This way you do the writes live and the reads from cache and they don´t interfere.

Başka bir öneri her ay yüksek puanlar tablo sıfırlamak olacaktır, veya erişim frekansına göre ayrı eski veri tutmak için. Facebook Ben onların kurşun geliştirici bir sunumda gördüğümüz gibi, böyle bir şey yapıyor.

Sen tek tablo seçeneği ile gitmeli. Bu şekilde daha fazla oyun eklediğinizde veritabanı şemasını değiştirmek gerekmez.

Veritabanları bu gibi verilerle başa çıkmak için tasarlanmıştır. Çok veri ile bir tablo olan sürece doğru endeksli olduğu gibi herhangi bir soruna neden olmaz.