2011-09-28 2 views
2

J'ai regardé différentes bibliothèques de bases de données pour mon jeu de cartes en ligne (PostgreSQL, Oracle, etc.) et, bien que SOCI + pg ou Oracle soient beaucoup plus puissantes, elles sont difficiles à compiler, intégrer et faire beaucoup plus que ce que je dois faire.Est-ce que SQLite est bon pour mon jeu?

Tout simplement ce sont mes exigences: Stockez le nom d'utilisateur, hachage, gagne, perd, email. Très simple.

Le jeu lui-même ne communiquera plus souvent avec la base de données. Lorsque le joueur se connecte, je vais me connecter en récupérant la ligne par nom d'utilisateur, et en vérifiant le hachage avec le hachage généré par le mot de passe qu'ils entrent. À part cela, le serveur accède à la base de données uniquement pour ajouter un utilisateur, enregistrer un gain ou une perte après avoir joué un tour ou pour mettre à jour des informations personnelles. Étant donné que SQLite prend en charge la simultanéité limitée, cela devrait convenir à mes besoins même si j'ai environ 100 jeux de cartes en cours d'exécution simultanément.

En réfléchissant sur ce qui précède, est-ce que SQLite est bon pour moi ou devrais-je penser sérieusement à opter pour une solution plus complexe? En gardant à l'esprit que les bases de données ne sont pas mon point fort.

Merci

+1

Pourquoi ne pas utiliser MySQL? Il n'a pas les limitations de concurrence et aucun des "maux de tête" associés aux solutions au niveau de l'entreprise. En outre, il est open source et pourrait bien s'adapter à un grand nombre de jeux si vous devenez populaire. – tafoo85

+0

@ tafoo85 Est-ce que MySQL me permet simplement d'exécuter des instructions SQL sans avoir besoin d'installer de logiciel supplémentaire ou est-ce que MySQL est un serveur qui fonctionne sur localhost? – jmasterx

+0

MySQL peut exécuter et écouter la connexion sur localhost seulement (voir la documentation pour les options bind-address et skip-networking) si vous voulez expérimenter vous pouvez aussi utiliser libmysqld qui est une bibliothèque C++ fournissant MySQL comme démon, mais déconseillé pour usage général utilisation car c'est compliqué à utiliser correctement. – johannes

Répondre

7

Avec autant de clients SQLite est un ajustement parfait. Cependant, je vous recommande de conclure cette fonctionnalité dans une interface simple et non spécifique à une base de données, et de l'implémenter pour SQLite. Une fois que vous obtiendrez des millions de clients avec des problèmes de concurrence/performance, vous pouvez simplement lancer une autre implémentation qui utilise une base de données plus puissante sans beaucoup changer votre code d'application.

Questions connexes