JeuWeb - Crée ton jeu par navigateur
BDD, String vers Hash - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38)
+--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51)
+--- Sujet : BDD, String vers Hash (/showthread.php?tid=5631)

Pages : 1 2 3 4 5


RE: BDD, String vers Hash - Viciousity - 09-08-2011

Ben si la solution de sephi regle le probleme de ma gestion en hash ^^


RE: BDD, String vers Hash - Sephi-Chan - 09-08-2011

Par contre, je ne comprends pas pourquoi tu veux pas avoir une colonne par attribut ?


RE: BDD, String vers Hash - Akira777 - 10-08-2011

Sephi-chan, oui tout à fait, je n'ai jamais fait ce que j'ai présenté. On voit bien que c'est très moche de travailler avec des attributs stockés de cette manière.
Je suis d'accord avec toi, une colonne par attribut c'est ce qu'il y a de mieux à faire.

Là où je parlais de problème c'était simplement pour avoir un petit éclaircissement sur la manière dont on pourrait faire un WHERE avec des données stockées en hash comme proposé par Viciousity.


RE: BDD, String vers Hash - Viciousity - 10-08-2011

Avec Rails on travaille rarement en SQL ^^
du coup il nous suffit de faire PlayerStat.where(abilities[:fire] => 5)


RE: BDD, String vers Hash - Sephi-Chan - 10-08-2011

(09-08-2011, 11:24 PM)Sephi-Chan a écrit : Par contre, je ne comprends pas pourquoi tu veux pas avoir une colonne par attribut ?




RE: BDD, String vers Hash - Akira777 - 10-08-2011

(10-08-2011, 10:46 AM)Viciousity a écrit : Avec Rails on travaille rarement en SQL ^^
du coup il nous suffit de faire PlayerStat.where(abilities[:fire] => 5)

Ca Okay, pas de soucis, que ce soit en PHP ou en Rails, on fait la même chose... Là c'est niveau code que tu parles. Je vais tourner ma question dans un autre sens. Si jamais t'as envie de récuperer les 10 joueurs qui ont la meilleur abilité de feu, avec ton système de stockage en string (5:10:7:8), comment tu fais ?

EDIT : Parcequ'en PHP par exemple, j'appelle mon objet qui gère les joueurs et je fais :


<?php

$players = new wanPlayers();
$classement_argent = $players->search('argent', DESC)->limit(10);

print_r($classement_argent);

/*
array([0] =>
[id] => '123',
[login] => 'foo',
[argent] => 120000
[1] =>
[id] => '456',
[login] => 'bar',
[argent] => 85000
[2] =>
etc, ...)
*/

?>

La question n'est donc pas là, en tout cas, pas niveau code. Mais niveau stockage, que ce soit du SQL ou autre, comment tu fais pour récupérer ça, si t'as stocké les infos de tes joueurs sous forme de string comme tu nous l'a montré...


RE: BDD, String vers Hash - Viciousity - 10-08-2011

Pourquoi ?

Simplement parce que je travaille d'habitude avec mongomapper qui gere les hash pour les données et je me demandais si cetait possible avec activerecord et une bdd "classique"


RE: BDD, String vers Hash - Akira777 - 10-08-2011

Et Mongomapper est capable de faire ça ?


RE: BDD, String vers Hash - Sephi-Chan - 10-08-2011

(10-08-2011, 12:31 PM)Viciousity a écrit : Pourquoi ?

Simplement parce que je travaille d'habitude avec mongomapper qui gere les hash pour les données et je me demandais si cetait possible avec activerecord et une bdd "classique"

Une base de données relationnelle n'est pas appropriée pour cet usage. Smile


(10-08-2011, 12:34 PM)Akira777 a écrit : Et Mongomapper est capable de faire ça ?

MongoMapper est un ORM en Ruby pour MongoDB. Mais MongoDB en lui même stocke des objets JSON, donc tu peux effectivement faire ça et requêter sur les hash enfants sans aucun problème.



RE: BDD, String vers Hash - Viciousity - 10-08-2011

Ouais MongoMapper c'est un adaptateur MongoDB, c'est du No-SQL.
L'avantage est qu'il est beaucoup plus rapide pour les échange avec la 'base de donnée' et qu'il peut stocker des arrays, des Hash. Tu n'as pas de schema fixe de données, tu peux donc faire évoluer ta table super facilement. De plus les données sont stockées en JSON, bref , Franchement une tuerie !

Pour MongoDB:
http://dev.af83.com/mongodb/pourquoi-choisir-mongodb/2010/01/28
http://www.mongodb.org/

ORM :
MongoMapper : http://mongomapper.com/documentation/getting-started/rails.html (mon préféré)
Mongoid : http://mongoid.org/