İlk gerçek projemi Rails'te 3 ana bölümden oluşan bir web uygulamasından oluşturacağım:
- Veritabanının kullanılmadığı statik kısım
- Bir veritabanı gerektiren Kullanıcı kayıt kısmı ve her kullanıcının satırı aynı alanlara sahip olacağından MySQL kullanabilirim
- Kullanıcıların koleksiyonlardaki öğeleri oluşturabileceği, düzenleyebileceği, düzenleyebileceği ve diğer kullanıcılarla paylaşabileceği "Uygulama"
Birkaç öğe türü olacak ve her biri farklı seçeneklere sahip olacak, örneğin aşağıdaki seçeneklerle "video" öğeleri olabilir:
- İD
- Kullanıcı kimliği
- collection_id
- Başlık
- platform (gömülü ise)
- url (yerleştirilmişse)
- dosya adı (uygulamamda barındırılıyorsa)
- dosya boyutu (uygulamamda barındırılan kimlik)
ve "harita" öğeleri:
- İD
- Kullanıcı kimliği
- collection_id
- Başlık
- platformu (google haritaları, bing haritaları ...)
- yer
- uRL
- harita boyutu
Kullanıcılar için olabildiğince MySQL'i öğeler için kullanabilirim.
Şimdiye kadar her zaman PHP ve MySQL kullandım (her zaman küçük projeler için paylaşılan barındırmada) ve ölçeklenebilirlik benim için tamamen yeni bir kelime.
Öğrenecek zamanım var ama 1 ay gibi bir şeyde somut bir şeyler yapabilmek istiyorum.
MongoDB ve NoSQL vs RDMS ve MySQL hakkında çok şey okudum ve denedikten sonra ben MongoDB nasıl çalışır gibi söylemek gerekir: hiçbir tablo, satır ve onun gibi JSON belgeleri:
- Benim durumumda ne istiyorsunuz? neden?
- Ölçeklenebilirlik hakkında MongoDB ile ilgili sorunlar olabilir mi? evet ise (DB boyutu açısından) ve bu sorunlar benim app önemli ölçüde yavaşlayabilir?
Düzenleme: uygulamanın nasıl çalışacağı
Birçok kişi bu uygulamanın nasıl çalışmasını istediğini sordum beri:
- Bir kullanıcı kaydı
- Giriş yaptı
- Sonsuz eşya yaratabileceği ilk koleksiyonunu yaratıyor
- Öğeler çeşitli türdedir ve her türün veritabanına kaydedilmesi için farklı veriler gerekir ve öğe türleri eklenebilir veya değiştirilebilir
Kullanıcılar içinde başka koleksiyonlar ve öğeler oluşturabilir.
Bu yüzden içindeki koleksiyonlar ve öğeler için CRUD var ve her koleksiyon / öğe belirli bir kullanıcıya yönlendiriliyor
MySQL ile ana sorun, esnek bir şema olmadığı, bunu çözmek için bir yol var (bir geçici çözüm?)?
NoSQL hakkında düşünme sahip olduğum tek şüphe katılmakla ilgili, örneğin belirli bir koleksiyon verilen Koleksiyonda id = user_id alanı ile Kullanıcı ile ilgili verileri almak istiyorum
EDIT: MySQL kullanmaya devam etmek için fikir
"Öğeler" tablosunda isteğe bağlı ayarlarla bir alan oluşturun, her ayar bir | veya başka bir sembol.
Daha sonra bir yere her öğenin isteğe bağlı ayarlarının bir yapısını kaydedeceğim, örneğin "notlar" öğe türü iki isteğe bağlı ayar "renk" ve "strange_setting" gerekir, MySQL'den veri aldığımda isteğe bağlı ayarlar için alanı bir dizideki ilk öğenin "renk" için olduğunu bilerek dizi.
Ne düşünüyorsun? bu çözümde sorun mu var? başka fikrin var mı?