Architecture Base de donnée - 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 : Architecture Base de donnée (/showthread.php?tid=5376) |
Architecture Base de donnée - ToraTora - 12-04-2011 Bonjour, n'étant pas expert en base de donnée, je me demande si mon architecture est correct, ou si je peux encore l'optimiser. Voici les tables que j'ai : items: id, x, y, z, image_id personnages: item_id, empire_id, planete_id, ville_id, [caractéristiques du personnage...] vaisseaux: item_id, planete_id, ville_id, personnage_id, [caractéristiques du vaisseau...] objets: item_id, planete_id, ville_id, [caractéristiques de l'objet...] planetes: item_id, nom, description [caractéristiques de la planete...] villes: item_id, planete_id, nom, description [caractéristiques de la ville...] Mes planètes sont découpés en plusieurs images exemple : J'enregistre donc toutes les images avec leurs coordonnées associé pour construire quelque chose comme ça : Est ce que c'est la bonne façon de faire ? Y a-t-il des optimisation à faire ? Merci pour votre aide ! RE: Architecture Base de donnée - Sephi-Chan - 12-04-2011 Qu'est-ce qu'un item ? En tout cas, ce mélange des langues est dangereux. Tu devrais n'en choisir qu'une (et idéalement choisir l'anglais). Sephi-Chan RE: Architecture Base de donnée - ToraTora - 12-04-2011 Effectivement, il faudra que j'harmonise tout ça. Ma table item ne sert qu'à enregistrer les informations identiques à toutes mes tables. Au lieu d'avoir personnages: id, x, y, z, empire_id, planete_id, ville_id, [caractéristiques du personnage...] vaisseaux: id, x, y, z, planete_id, ville_id, personnage_id, [caractéristiques du vaisseau...] objets: id, x, y, z, planete_id, ville_id, [caractéristiques de l'objet...] je voulais regrouper tous les champs identiques dans 1 seule table. En fait item devrait s’appeler position.. RE: Architecture Base de donnée - Sephi-Chan - 12-04-2011 D'accord, je comprends mieux. Mais quel est l'intérêt dans ton cas ? Si c'est pour économiser des colonnes, ça ne sert à rien. :p Ça ressemble à du polymorphisme, mais en moins complet. Sephi-Chan RE: Architecture Base de donnée - ToraTora - 12-04-2011 Un personnage peut avoir plusieurs vaisseau, plusieurs objets. Un vaisseau peut avoir plusieurs objets. Donc lors d'un déplacement, au lieu de modifier la position des vaisseaux/objets/personnages dans chaque tables, je la modifie que dans 1 seule. Je me demande si c'est la bonne façon de faire. RE: Architecture Base de donnée - Sephi-Chan - 12-04-2011 Hm, je croyais comprendre, mais en fait non. À quoi correspond l'image généré ? Qu'est-ce que ça représente ? Pourquoi un objet a-t-il besoin de coordonnées ? Bref, explique-nous ton schéma. Sephi-Chan RE: Architecture Base de donnée - Argorate - 12-04-2011 (12-04-2011, 07:13 PM)ToraTora a écrit : Un personnage peut avoir plusieurs vaisseau, plusieurs objets. Oui, j'avais fait pareil pour mon MMO, d'ailleurs j'avais bien galéré a tout transféré, mais effectivement c'est une optimisation non négligeable et que je te conseil fortement. Les objets doivent avoir des coordonnées lorsqu'ils ne sont pas contenu, mais dès qu'il le sont ils doivent figurer dans une table de liaison (id_obj, id_conteneur), et du coup il n'ont plus de coordonnée propre, ils sont dans un conteneur qui lui a des x et y a ce moment là... Bref tu as deja compris tout ça tout seul, je dis juste que je trouve ça pertinent. RE: Architecture Base de donnée - ToraTora - 12-04-2011 Ok, commençons par les planètes. Chaque planètes est découpés en plusieurs image. Pour pouvoir reconstituer la planète au complet j'enregistre donc les coordonnées de ces images, exemple : x:5, y:-2, z:3, image: img-1.png x:5, y:-3, z:2, image: img-2.png x:6, y:-3, z:1, image: img-3.png etc... Lorsque j'affiche ma carte j'affiche donc les images en fonction de ma position. Pour les personnages/vaisseaux/objets/villes c'est plus simple, car je n'ai qu'une seule image associée à chaque id. Est ce que c'est plus clair ? Merci pour ton temps RE: Architecture Base de donnée - Sephi-Chan - 12-04-2011 Pourquoi as-tu besoin de coordonnées pour les objets et les personnages ? RE: Architecture Base de donnée - ToraTora - 12-04-2011 Parce qu'un objet peut être à un certain point dans l'espace. Pareil pour mon personnage, il peut sortir de son vaisseau et être à un autre point. |