IGstaff
Membre
Messages : 253
Inscription : Oct 2007
Réputation : 2
|
RE: [Gestion inventaire] ID unique, ou non?
z3d -> el[u]ox a voulu faire une modélisation de ma bdd de test en y ajoutant les clés étrangères, seulement ses scripts SQL en fonctionnent jamais, on pourrait en parler plus sérieusement que je fasses des test voir si mysql pourrait faire mieux ?
Cette histoire m'intéresse mais rien ne fonctionne.
Voici les tables que j'utilise actuellement pour comparer:
Code PHP :
CREATE TABLE `users` ( `id` INT( 10 ) NOT NULL AUTO_INCREMENT , `name` VARCHAR( 50 ) NOT NULL , `password` VARCHAR( 40 ) NOT NULL , `email` VARCHAR( 50 ) NOT NULL , `inventory` TEXT NOT NULL , PRIMARY KEY ( `id` ) ) ENGINE = MYISAM
CREATE TABLE `inventory` ( `id` INT( 10 ) NOT NULL AUTO_INCREMENT , `user_id` INT( 10 ) NOT NULL , `object_id` INT( 10 ) NOT NULL , `number` INT( 10 ) NOT NULL , PRIMARY KEY ( `id` ) , INDEX ( `user_id` , `object_id` ) ) ENGINE = MYISAM
Fondateur, Administrateur, Développeur de l'équipe IGstaff.
Nos jeux: IGame, MielWar
|
|
| 08-08-2008 02:18 PM |
|
Kassak
Membre
Messages : 824
Inscription : Aug 2006
Réputation : 5
|
RE: [Gestion inventaire] ID unique, ou non?
Zed, pour moi l'inventaire c'est ce que le personnage a sur lui, donc équipé ou non équipé, et ensuite un champ port comme je l'ai fait suffit amplement, pourquoi refaire une autre table alors qu'un champ suffit?
Oxman, mon champ usure, appelé etat dans mon cas, me sert a beaucoup de chose. Un objet a l'état normal, c'est l'objet ayant les caracs que j'ai mise en bdd, ensuite les états inférieur à normal, auront un effet négatif lors de l'utilisation ( que se soit équipement ou potion ), et vice versa pour un effet supérieur à normal.
De toute façon, chacun a sa manière de faire, il n'y a pas de bonne ou de mauvaise
Il est pas magnifique ce sol?
(Ce message a été modifié le : 08-08-2008 02:52 PM par Kassak.)
|
|
| 08-08-2008 02:47 PM |
|
keke
Modérateur
    
Messages : 1,163
Inscription : Mar 2007
Réputation : 18
|
RE: [Gestion inventaire] ID unique, ou non?
Kassak a écrit :De toute façon, chacun a sa manière de faire, il n'y a pas de bonne ou de mauvaise 
A toi aussi tu cherches à te rattraper d'un topic foireux ?
Ben je te rejoins sur plusieurs point Kassak car c'est ainsi que j'ai procédé.
Un objet est transporté par un joueur. Il peut être utilisé ou non. J'indique aussi si l'objet est dans un sac à dos ou non ... mais je n'ai qu'une table objet
Dans mes tables j'ai plusieurs colonne qui ne sont pratiquement pas utilisés ... Je n'ai pas mis d'usure car je compte cet état comme un 'Effet' et ça suit un module en cours de développement qui est plus large.
Dans ma table Objet, j'ai beaucoup de champs qui sont peu utilisés... enfin, utilisés uniquement pour certains types d'objets :
Exemple : beaucoup d'objet sont non-empillable (une colonne de 1 octet pour indiquer empillable ou non), mais ces objets on aussi un champs nombre ... ce qui peut faire double emploi. Tous les objets ont un champs dommage qui n'est normalement que réservé aux armes. Les objets ont tous un champs id_rangement qui sert à désigner l'endroit ou l'on peut poser son heaume, son armure, son arme ... le sac de couchage a un rangement à 0 comme beaucoup d'objet.
Ma table objet est certes énormes ... mais mes requêtes sont très simples ... et ça marche depuis 3 ans.
Kéké
Kéké
Administrateur du jeu médiéval http://www.magdales.com
Papa depuis 18 mois. Modérateur de jeuPHP .
En préparation pour ses congés de Noël ... kéké moins actif pendant les congé
|
|
| 08-08-2008 03:02 PM |
|
oxman
Membre
Messages : 746
Inscription : May 2008
Réputation : 10
|
RE: [Gestion inventaire] ID unique, ou non?
La question est avant tout de savoir si on veut un MCD propre où non.
On commence à le rendre moins propre quand on a besoin de performances.
On est pas du tout dans ce cas de figure là.
|
|
| 08-08-2008 03:20 PM |
|
Ruz
Membre
Messages : 182
Inscription : Apr 2008
Réputation : 1
|
RE: [Gestion inventaire] ID unique, ou non?
ok, merci pour les réponses... Je rentre chez moi voir ca, et je cogite un peu ce soir...
attendez, je cherche...
|
|
| 08-08-2008 04:04 PM |
|
Satevis
Membre
Messages : 49
Inscription : Aug 2008
Réputation : 0
|
RE: [Gestion inventaire] ID unique, ou non?
J'ai donné une solution mais personne ne m'écoute  mais je n'avais pas de jolie dessin peut être pour çà  .
Satevis a écrit :Petite idée qui n'est surement pas la meilleure voir la bonne .
-Ta table 'Objet', tout les types objets disponible avec leurs caractéristiques toussa toussa ce qui nous donne l'ID_Objet.
-Ta table 'Inventaire' qui lie un ID_Objet à un ID_Joueur plus les infos complémentaires genre la quantité si équipé ou pas toussa toussa qui nous donne ID_inventaire.
-1 table 'UsureObjet' qui associe un ID_Inventaire à la valeur d'usure si l'objet en à une. Exemple : si tu as 5 épées tu insères 5 ligne, pour l'or pas la peine de l'y ajouter puisque pas d'usure.
Au final tout le monde (a part IGstaff  ) à la même solution ou presque.
z3d a écrit :De plus, la structure de contrôle foreach est la plus longue en terme de temps de traitement; pour atteindre le temps de traitement d'un while ou d'un for vaut mieux utiliser cette combinaison : while(list($key, $value, ...) = each())
C'est le contraire justement  .
|
|
| 08-08-2008 06:08 PM |
|
oxman
Membre
Messages : 746
Inscription : May 2008
Réputation : 10
|
RE: [Gestion inventaire] ID unique, ou non?
Et le plus rapide est :
$key = array_keys($aHash);
$size = sizeOf($key);
for ($i=0; $i<$size; $i++) $tmp[] = &$aHash[$key[$i]];
|
|
| 08-08-2008 07:01 PM |
|
phenix
Membre
Messages : 279
Inscription : May 2007
Réputation : 2
|
RE: [Gestion inventaire] ID unique, ou non?
Citation :Et le plus rapide est :
$key = array_keys($aHash);
$size = sizeOf($key);
for ($i=0; $i<$size; $i++) $tmp[] = &$aHash[$key[$i]];
Heu ce serai pas:
Code PHP :
$key = array_keys($aHash); $size = sizeOf($key); $i=0; while ($i<$size) { $tmp[] = &$aHash[$key[$i]]; $i++; }
A ma connaissance, while c'est la plus légère des boucles non ?
Phenix, administrateur de streamanga
Visitez aussi mon MMORPG la vallée des larmes
|
|
| 08-08-2008 07:13 PM |
|
oxman
Membre
Messages : 746
Inscription : May 2008
Réputation : 10
|
RE: [Gestion inventaire] ID unique, ou non?
Le while est en effet plus rapide.
|
|
| 08-08-2008 07:18 PM |
|
Satevis
Membre
Messages : 49
Inscription : Aug 2008
Réputation : 0
|
RE: [Gestion inventaire] ID unique, ou non?
J'ai tester votre méthode et elle est plus lente que le foreach  .
Pour 3 fois 100 000 tours :
foreach() => ~2.9 secondes
votre méthode arrayKeys avec un while() => ~5.3 secondes
votre méthode arrayKeys avec un for() => ~5.8 secondes
While() avec list() => ~8.4 secondes
|
|
| 08-08-2008 09:11 PM |
|