Poster une réponse 
 
Note de cette discussion :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5
[Gestion inventaire] ID unique, ou non?
Auteur Message
IGstaff Hors ligne
Membre

Messages : 253
Inscription : Oct 2007
Réputation : 2
Message : #41
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` (
`
idINT10 NOT NULL AUTO_INCREMENT ,
`
nameVARCHAR50 NOT NULL ,
`
passwordVARCHAR40 NOT NULL ,
`
emailVARCHAR50 NOT NULL ,
`
inventoryTEXT NOT NULL ,
PRIMARY KEY ( `id` )
ENGINE MYISAM

 CREATE TABLE 
`inventory` (
`
idINT10 NOT NULL AUTO_INCREMENT ,
`
user_idINT10 NOT NULL ,
`
object_idINT10 NOT NULL ,
`
numberINT10 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
Trouver tous les messages de cet utilisateur Citer ce message dans une réponse
Kassak Hors ligne
Membre

Messages : 824
Inscription : Aug 2006
Réputation : 5
Message : #42
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 16

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
Trouver tous les messages de cet utilisateur Citer ce message dans une réponse
keke Hors ligne
Modérateur
*****

Messages : 1,163
Inscription : Mar 2007
Réputation : 18
Message : #43
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 16

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 34.
En préparation pour ses congés de Noël ... kéké moins actif pendant les congé 34
08-08-2008 03:02 PM
Visiter le site internet de cet utilisateur Trouver tous les messages de cet utilisateur Citer ce message dans une réponse
oxman Hors ligne
Membre

Messages : 746
Inscription : May 2008
Réputation : 10
Message : #44
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
Visiter le site internet de cet utilisateur Trouver tous les messages de cet utilisateur Citer ce message dans une réponse
Ruz Hors ligne
Membre

Messages : 182
Inscription : Apr 2008
Réputation : 1
Message : #45
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
Visiter le site internet de cet utilisateur Trouver tous les messages de cet utilisateur Citer ce message dans une réponse
Satevis Hors ligne
Membre

Messages : 49
Inscription : Aug 2008
Réputation : 0
Message : #46
RE: [Gestion inventaire] ID unique, ou non?
J'ai donné une solution mais personne ne m'écoute 12 mais je n'avais pas de jolie dessin peut être pour çà 2.
Satevis a écrit :Petite idée qui n'est surement pas la meilleure voir la bonne 1.
-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 10) à 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 16.
08-08-2008 06:08 PM
Trouver tous les messages de cet utilisateur Citer ce message dans une réponse
oxman Hors ligne
Membre

Messages : 746
Inscription : May 2008
Réputation : 10
Message : #47
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
Visiter le site internet de cet utilisateur Trouver tous les messages de cet utilisateur Citer ce message dans une réponse
phenix Hors ligne
Membre

Messages : 279
Inscription : May 2007
Réputation : 2
Message : #48
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
Trouver tous les messages de cet utilisateur Citer ce message dans une réponse
oxman Hors ligne
Membre

Messages : 746
Inscription : May 2008
Réputation : 10
Message : #49
RE: [Gestion inventaire] ID unique, ou non?
Le while est en effet plus rapide.
08-08-2008 07:18 PM
Visiter le site internet de cet utilisateur Trouver tous les messages de cet utilisateur Citer ce message dans une réponse
Satevis Hors ligne
Membre

Messages : 49
Inscription : Aug 2008
Réputation : 0
Message : #50
RE: [Gestion inventaire] ID unique, ou non?
J'ai tester votre méthode et elle est plus lente que le foreach 57.
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
Trouver tous les messages de cet utilisateur Citer ce message dans une réponse
Poster une réponse 



ContactJeuWeb (JeuPHP) - Crée ton jeu par navigateurRetourner en hautRetourner au contenuVersion bas-débit (Archivé)Syndication RSS