Büyük özel anket / raporlama uygulamaları - en iyi uygulama

3 Cevap php

The situation

Eğer sosyal bilimler ders çalışırken, sık sık online anketler (bilimsel veri toplama online) için ihtiyacı ile karşı karşıya kalırlar. Ben ilk etapta PHP ile başladı neden ana nedenlerinden biri.

Son zamanlarda bu anket uygulamaları büyüdü ve büyüdü. A lot of complexity eklendi: vb katılan firmalar için raporlama (flaş çizelgeleri, PDF oluşturma), veri toplama, toplama (örneğin şirket birimlerinin) farklı düzeyleri, anket modülü seçimi

Şimdi kendimi getting slow and unmaintainable (Joomla temelinde çalışan) bir karmaşık veri toplama ve raporlama uygulaması ile karşı karşıya bakın. Bu arada ben artık okuyan ama yine de online araştırma uygulamalar geliştirmek değilim.

Benim platformlarından biri 100 yeni günde kullanıcılar ve çeşitli thousend users times hundreds of data items times {[(agrega / raporlarına kadar vardır 4)]}.

My questions

  • PHP / MySQL hala gitmek için bir yoldur?
  • CodeIgnitor gibi bir çerçeve böyle bir uygulama için bir temel olabilir ya da ben herşeyi sıfırdan geliştirmek gerekir?
  • Eğer ben bir temel olarak kullanabilirsiniz anket belirli çerçevesinde her türlü biliyor musunuz?

3 Cevap

PHP / MySQL hala gitmek için bir yoldur?

Evet, PHP / MySQL (LAMBA) başarıyla seninkinden daha katlanarak geniş kullanıcı üsleri ile sitelerin yüzlerce kullanılmıştır.

CodeIgnitor gibi bir çerçeve böyle bir uygulama için bir temel olabilir ya da ben herşeyi sıfırdan geliştirmek gerekir?

Bir çerçeve (ya da bir özel inşa çerçeve) olmadan inşa nontrivial PHP siteleri özensiz hızlı şekilde almak eğilimindedir. PHP çerçeveler şimdi başlarken için norm, ben şahsen Zend Framework öneriyoruz. Birçok ortak PHP (Veritabanı için yedek / geliştirmeleri, Tarih, JSON, RPC, REST) ​​görevleri ve web uygulama geliştirme için organize bir metodoloji için araçlar sağlayarak, çok sağlam bir çerçevedir: MVC {kullanarak [(2) }].

Eğer ben bir temel olarak kullanabilirsiniz anket belirli çerçevesinde her türlü biliyor musunuz?

Yok ben biliyorum, ama otomatik yapılandırma dosyalarından form öğeleri (tip, filtreler, hijyen, doğrulayıcılar) oluşturmak için Zend_Form kullanarak denemek isteyebilirsiniz.

PHP / MySQL bu ölçek için iyi olmalı, ama bunu ayar gerekir ve bunu yeterli kaynakları verir.

Lütfen şema düşünülmüş değilse Örneğin, performans duvarların her türlü vuracak. Veri saklanır ve dizine nasıl muhtemelen raporların performansı için en önemli faktördür. Ben hafif karmaşık sorgular için alt ikinci tepki süreleri ile mysql veri 60-100GB yaşadım. Önemli faktörler şunlardı:

  • benim veri ben kullandım yollarını dizine
  • Ben kullanılan sorguları, düşünülmüş test ve optimize edildi

Sonraki kadar, sizin MySQL sunucu yeterli bilgi vermek zorundadır. Eğer paylaşılan bir barındırılan sunucu app çalıştırıyorsanız ve kutusu ayarlarının Çıkış kullanıyorsanız, mysql muhtemelen verilerin yüz daha bir kaç mb yıllardan ile iyi çalışmaz. Lütfen önbelleklerini ayarlanmış olduğundan emin olun, sizin tablo türleri, uygulama için mantıklı ve performans ihtiyaçlarını karşılamak için yeterli bellek ve yeterince hızlı diskler var.

Ve nihayet, bizim veri setleri büyük olsun hepimizin kullandığı bir hile var: Bir cron yerine talep üzerine raporlar oluşturmak. Bir flash grafik oluşturmak için 2 dakika sürer, bir cron çalışsan veri oluşturmak için her 5 dakikanız var. Bir yerde bir dosyaya koyup yerine gerçek zamanlı veritabanı sorgulama grafik yazılım için dışarı tükürmek.

Eğer SurveyMonkey gibi araçlar baktı, ya da ihtiyaçlarınız için uygun değildir mı?