Frage

Die situation

Wenn Sie studieren Sozialwissenschaften, sind Sie Häufig mit der Notwendigkeit konfrontiert, die für online-Umfragen (die Sammlung wissenschaftlicher Daten online).Das ist einer der Hauptgründe, warum ich begann mit PHP in den ersten Platz.

Vor kurzem diese Umfrage Anwendungen gewachsen und gewachsen.Ein viel Komplexität Hinzugefügt wurde:reporting (flash-charts, PDF-Generierung), Daten-aggregation, verschiedene aggregationsebenen (z.B.Unternehmens-Einheiten), Fragebogen-Modul-Auswahl für die beteiligten Unternehmen, etc.

Jetzt sehe ich mich konfrontiert mit einer komplexen Datenerfassung und reporting-Anwendung, die langsam und wartbaren.

Einer meiner Plattformen hat bis zu 100 neue Nutzer pro Tag und Aggregate / reports-Daten, mit der mehrere tausend Nutzer mal Hunderte von Daten mal Dutzende von Ebenen der Hierarchie.

Meine Fragen

  • PHP/mysql noch ein Weg zu gehen?
  • könnte ein framework wie codeIgnitor eine Grundlage für eine solche Anwendung oder sollte ich entwickeln alles von Grund auf neu?
  • wissen Sie, jede Art von Umfrage spezifische Rahmenbedingungen, die ich verwenden könnte als Grundlage?
War es hilfreich?

Lösung

PHP/mysql noch ein Weg zu gehen?

Ja, PHP/MYSQL (LAMP) wurde erfolgreich in Hunderten von Standorten mit exponentiell größere Benutzer-Basen als deine.

könnte ein framework wie codeIgnitor eine Grundlage für eine solche Anwendung oder sollte ich entwickeln alles von Grund auf neu?

Nichttriviale PHP-sites, ohne Rahmen, (oder ein custom-built framework) neigt dazu, schlampig schnell.PHP-frameworks sind jetzt die norm für den Einstieg würde ich persönlich empfehlen, die Zend Framework.Es ist eine sehr robuste Rahmen, die Bereitstellung von Werkzeugen für viele gängige PHP-Aufgaben (Ersatz/Erweiterungen für Datenbank -, Datum -, JSON-RPC, REST) und eine organisierte Methodik für die Entwicklung von Webanwendungen: MVC Verwendung Zend_Controller.

wissen Sie, jede Art von Umfrage spezifische Rahmenbedingungen, die ich verwenden könnte als Grundlage?

Keiner, den ich kenne, aber Sie möchten möglicherweise versuchen Sie es mit Zend_Form automatisch generieren Formular-Elemente (Typ, Filter, Desinfektionsmittel, Prüfungen) von Konfigurationsdateien.

Andere Tipps

PHP / MySQL sollte für diese Skala in Ordnung sein, aber man muss es stimmen und geben ihm ausreichende Mittel.

Zum Beispiel, wenn Ihr Schema nicht gedacht ist, finden Sie alle Arten von Performance Wände treffen. Wie Sie Ihre Daten werden gespeichert und indiziert ist wahrscheinlich der wichtigste Faktor für die Leistungsfähigkeit von Berichten. Ich habe für milden komplexe Abfragen 60-100gb von Daten in MySQL mit Sub-Second-Antwortzeiten hat. Zu den wichtigen Faktoren waren:

  • meine Daten wurden für die Art und Weise indiziert ich es benutzt
  • die Abfragen I verwendet wurden, durchdacht, getestet und optimiert

Als nächstes müssen Sie Ihre MySQL-Server über ausreichende Ressourcen geben. Wenn Sie Ihre App auf einem freigegebenen gehosteten Server ausgeführt wird, und Sie sind mit dem aus den Feldeinstellungen, mysql wird wahrscheinlich nicht gut läuft mit mehr als ein paar hundert MBs von Daten. Stellen Sie sicher, dass Ihre Caches sind so abgestimmt, Ihre Tabellentypen sinnvoll für Ihre Anwendung und Sie haben genügend Speicher und schnell genug Platten Ihre Leistungsanforderungen gerecht zu werden.

Und schließlich gibt es einen Trick, den wir alle nutzen, wenn unsere Datensätze erhalten groß: Ihre Berichte über einen cron erzeugen, anstatt auf Anfrage. Wenn es 2 Minuten dauert eine Flash-Grafik zu erzeugen, hat eine cron alle 5 Minuten ausführen, um die Daten zu erzeugen. Halten Sie es in einer Datei irgendwo und spucken, dass, um die grafische Darstellung Software statt der Datenbank in Echtzeit abgefragt werden.

Sie sollten die Open Source Limesurvey Anwendung suchen.

Es PHP / Mysql verwenden, so dass Adressen eine Ihrer Fragen in Bezug auf die Angemessenheit von PHP für die Aufgabe.

Die vorherige Version von Limesurvey wurde in CodeIgniter geschrieben, aber die Projekte mit dem Yü Rahmen nach Unsicherheit und Verwirrung über CodeIgniter Lizenzen geändert führen kann.

Ihre dritte Frage wird oben beantwortet.

Referenzen: https://www.limesurvey.org/

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top