PHP tabanlı oyun - Her kullanıcı kendi veritabanı vererek

6 Cevap php

Her kullanıcı kendi / onun hesabı hakkında veri ile kendi veritabanına sahip bir web tabanlı PHP / MySQL oyunu olması mümkündür.

Her kullanıcının kendi veritabanı olması gereken bir singleplayer yönetim oyunu. Veya en azından, ben bunu görmek yoldur. Bu doğru çözümdür, ve sunucu bant genişliği ve bu tür bakımından bu iş.

Sen oyun için bir savefile olarak bakabilirsiniz. Her kullanıcı bir savefile, kendi veritabanına sahiptir. Oyunun temelleri 1 veritabanındaki tüm mağazaları vardır. Savefile veritabanı, yalnızca onun savefile / oyun benzersiz kılan puan durumları, oluşturulan karakter ve şeyler oluşur.

6 Cevap

İlişkisel veritabanları hakkında biraz daha bilgi okumalısınız. Sonra biraz daha düşün. Sen ayrı veritabanları, ne de ayrı bir kullanıcı oluşturmak gerekmez. Bir Kullanıcıların tablo olmalıdır, diğer veri bitlerini temsil eden her bir birincil anahtar id, ve sonra diğer tablolar sahip her kullanıcı bir owner veya userid sütun var ( siz) bir isim istersen, her satır sahibinin kimliğini koyar.

Örneğin bir oyuncunun envanter saklamak istiyorsanız, size InventoryItems adında bir tablo olurdu ve sütunlar "id, kimliği, itemtypeid, NumberOfItems". Itemtypeid görüntü, isim, madde, bu tür istatistikler gibi şeyler için sütunlar, ItemTypes tablodaki bir satır kimliğidir. Sonra bir kullanıcının envanter her öğe, o tablodaki bir satır vardır.

Bu çok temel veritabanı tasarımı ve ben düz dosyalar çok çok alışık olduğunu düşünüyorum. Yani yine, ben, (tabloları bağlama yoluyla) gibi bir-çok ilişkileri, çok-çok ilişkileri gibi teknikleri öğrenmek için, veritabanı sistemi ve genel olarak ilişkisel veritabanı tasarımı hakkında daha fazla okumak için böyle şeyler seni çağırıyorum. Okuduğunuz gibi, muhtemelen size sorunları çözmek için yeni yollar düşünmek çok "ah-ha" anlar olacaktır.

Yoksa, sen bilirsin, sırt düz dosyaları gidin. Bu iş çok ...

Mümkün mü: evet. Ama bu doğru çözümdür: Kesinlikle hayır.

Eğer yerine sadece biri veritabanlarının bir gazillion dizi, değiştirmek zorunda sizin önerilen yaklaşım kullanarak, bir tabloyu güncelleştirmek istediğinizi varsayalım. Sorunu bakın?

Sounds very unlikely - and not specifically for game. A table per user would be strange, and a column per user would be too ...

Oyun PhpMyAdmin gibi bir şey olmadıkça, bu durumda kullanıcı başına bir veritabanı yeterli olmayacak!

Bu 200 için, en fazla 10 ya da öylesine kullanıcılar için işe + olsa da çözüm dağınık ve yönetilemez hale gelir.

Neden farklı oyuncuların bilgilerini saklamak için tek bir veritabanında ayrı satırları kullanamıyorum?

C.

Belki de yanlış koydu. Eğer her istemci makinede veya DOM depolama veya SQLite veritabanında yerel bir veritabanına sahip olandan bazı yerel depolama istiyorsanız.

Eğer kurulum için deli olurdu her kullanıcı için bir veritabanı istemem, etkili bir ölçek için 1 master ve bazı köle veritabanları isterdim.