TourDeJeu, le portail des jeux en ligne alternatifs, les articles 
TourDeJeu, le réseau des jeux en ligne alternatifs : jeux web multijoueurs, jeux par forum. En savoir +
En ligne : 518 jeux, 7177 news, 26754 commentaires
 

Recherche de jeu par critères - Un jeu au hasard !

Les Focus

Tech. : Le programmeur écologique
Tech. : automatisation et mails
Salon MondeDuJeu 2002
Revue de presse des JpC
Humour : 1001 raisons pour jouer
Ludique : le joueur parfait
Ludique : découverte du JpC
PHP : accès base de données
PHP : structure du site
Ludique : JpC et Temps réel
Jeux de rôles sans règles
Humour : astrologie du JpC
Tech. : Bases de données
MJ : les joueurs multiples
PHP : utilité pour un JpC
PHP : c'est quoi ?
Tech. : l'analyse des ordres
Ludique : débutants et vétérans
Tech. : archi Ultraball 2100
Ludique : les jeux de pronos
Tech. : le site Web d'un JpC
Humour : football et wargame
Présentation de TourDeJeu

Créer une base de données pour son jeu

Les types de données

Chaque colonne d'une table doit appartenir à un type de donnée précis. Plusieurs catégories de types existent (ci-dessous pour MySQL).

  • Numérique : les colonnes ne pourront contenir que des nombres. Pour les entiers, selon le nombre maximal envisagé, on pourra choisir entre TINYINT, SMALLINT, MEDIUMINT, INT ou BIGINT. Pour les nombres à virgule, le choix se fera entre FLOAT, DOUBLE, et DECIMAL.
  • Date et heure : DATE, DATETIME, TIME, TIMESTAMP, YEAR
  • Texte : CHAR de longueur fixe (le texte est complété par des blancs), VARCHAR de longueur variable, mais tous deux sont limités à 255 caractères maximum. Au delà, selon la longueur désirée, vous aures le choix entre TEXT (65535), MEDIUMTEXT, et LONGTEXT.

Le type Booléen (vrai ou faux) n'existe pas en MySQL, vous utiliserez un tinyint avec 0 et 1 en valeurs à la place, ce qui laisse de la place pour la valeur 2 = peut-être :-).

Lorsqu'une valeur n'est pas renseignée pour une ligne, elle prendra soit une valeur par défaut que vous aurez précisée ou non, soit la valeur NULL, qui est une valeur spéciale. Il est préférable de toujours éviter les valeurs NULL car celles-ci donnent des résultats inattendus dans les comparaisons ou opérations... (pour cela, préciser NOT NULL sur toutes vos colonnes).

Il existe aussi des colonnes de type ENUM pour indiquer une liste de valeurs possibles, ou SET pour un ensemble variable de valeurs dans une liste. Je ne les ai jamais utilisées, donc je ne vous dirai rien de plus ! (mais on doit pouvoir faire des booléens avec un ENUM !)

Pour ma part, quand j'ai des valeurs à choisir dans une liste, comme par exemple dans Fish Race les espèces de poisson, ou les ordres possibles, je préfère utiliser une table de codes/valeurs.

Pour TourDeJeu, j'ai une table que j'ai appelé CODE, qui contient les colonnes TYPE, CODE et LIBELLE. Je stocke la dedans la traduction en libellé de codes que j'utilise ailleurs. Elle contient entre autres :    
TYPECODELIBELLE
news  1  nouveau site
news  2  nouveau jeu
news  3  nouvelle partie / inscriptions/td>
news  4  événement
langue  1  Français
langue  2  anglais
etat  1  en création
etat  2  en beta
etat  3  actif
etat  4  enpause
etat  5  arrêté

Si je désire modifier le texte d'une de ces catégories, en rajouter une, etc... il me suffit juste de modifier le contenu de cette table sans rien changer à mon code. Dans mes formulaires, je lis cette table pour construire mes listes de choix, et dans la fiche de jeu, je viens chercher les libellés correspondant aux valeurs pour les afficher. Le seul souci est qu'il ne faut pas supprimer de catégorie car sinon je risque d'avoir des valeurs qui ne référencent rien. Je ne connaissais pas les colonnes de type ENUM et SET qui pourraient apparemment remplacer ce mécanisme maison.

Retour au sommaire de l'article 

(c) TourDeJeu 2000-2024