Je suis en train de coder une expérience de psychologie en Python. Je dois stocker les informations et les scores des utilisateurs quelque part, et j'ai besoin que cela fonctionne comme une application web (et soit sécurisé).
Je n'y connais pas grand chose - j'envisage des bases de données XML, BerkleyDB, sqlite, un tableur openoffice, ou je suis très intéressé par la bibliothèque "shelve" de python. (La plupart de mes informations proviennent de ce fil de discussion : http://developers.slashdot.org/story/08/05/20/2150246/FOSS-Flat-File-Database
DONNEES : Je suppose que je vais avoir au maximum 1000 utilisateurs. Pour chaque utilisateur, je dois stocker...
- Nom d'utilisateur / Pass
- Champs de détails de l'utilisateur (pour un profil simple)
- Les scores de l'utilisateur sur l'exercice (2 points de données : chaque essai obtient un score (correct/incorrect/temps mort, et a un nombre associé de 0.1 à 1.0 que je dois enregistrer)
- Métadonnées sur les procès (quand, qui, etc.)
- Résultats de l'analyse des données pour l'utilisateur
Selon une estimation très approximative, chaque utilisateur génère 100 essais / jour. Donc un maximum de 10k points de données / jour. Il doit fonctionner de cette façon pendant environ 3 mois, donc environ 1 million de points de données. Le multiplicateur de sécurité 2x me donne un objectif d'une base de données qui peut gérer 2m de points de données.
((note : je pourrais soit stocker les données de réponse aux essais sous forme de points de données individuels, soit regrouper les essais dans des objets liste Python de longueur variable (les "sessions" de l'utilisateur). Cette dernière solution permettrait de réduire considérablement le nombre d'entrées dans la base de données, mais pas la quantité de données. Est-ce important ? Comment ?))
Je veux une solution qui fonctionnera (au moins) jusqu'à ce que j'atteigne ce niveau de 1000 utilisateurs. Si mon programme est populaire au-delà de ce niveau, je suis d'accord pour faire un peu de modding dans une DB plus musclée. Je répète également qu'il doit être facilement déployable en tant qu'application web.
Au-delà de ces exigences de base, je veux juste que le chose la plus facile qui fera en sorte que ça marche. Je suis plutôt vert.
Merci de votre lecture
Tr3y