28-04-2009, 05:20 PM
S'il y a une seule rue / un seul extérieur dans ta région qui permette de rejoindre les lieux, tu n'as pas besoin d'une table intermédiaire pour lier les lieux aux régions.
En reprenant l'idée de Keke et en ajoutant une table rue ( que tu appelles comme tu veux ) :
Table REGION :
- id_region
- nom_region
Table Rue
- id_rue
- id_region
Table Lieu_Rue
- id_lieu
- id_rue
Table LIEU :
- id_lieu
- nom_lieu
Avec ce schéma, ton joueur peut se trouver dans un lieu ( table lieu ) ou dans une région. Mais s'il est dans une région, il se trouvera forcément dans une rue / un chemin ( table rue ). Et ces chemins mènent aux lieux grâce à la table lieu_rue.
Tu pourras toujours connaître la région d'un joueur, qu'il soit dans une rue, ou dans un lieu. Dans ce dernier cas, il te faudra y remonter avec une requête avec 2 jointures.
Je vois pas de raison particulière qui justifie de séparer les attributs d'un joueur en plusieurs tables, sauf si l'ensemble de ces attributs que tu regroupes dans des tables sont des entités à part entières. Par exemple, un lot de certaines caractéristiques pourraient être regroupées pour devenir un comportement, et être attribuées à plusieurs persos / monstres...
Plus il y a de tables, plus il y aura de jointures. Vu qu'il s'agit a priori de relations 1-1, il y aura autant d'enregistrements dans toutes les tables. Les fichiers seront juste un peu plus légers.
En reprenant l'idée de Keke et en ajoutant une table rue ( que tu appelles comme tu veux ) :
Table REGION :
- id_region
- nom_region
Table Rue
- id_rue
- id_region
Table Lieu_Rue
- id_lieu
- id_rue
Table LIEU :
- id_lieu
- nom_lieu
Avec ce schéma, ton joueur peut se trouver dans un lieu ( table lieu ) ou dans une région. Mais s'il est dans une région, il se trouvera forcément dans une rue / un chemin ( table rue ). Et ces chemins mènent aux lieux grâce à la table lieu_rue.
Tu pourras toujours connaître la région d'un joueur, qu'il soit dans une rue, ou dans un lieu. Dans ce dernier cas, il te faudra y remonter avec une requête avec 2 jointures.
Je vois pas de raison particulière qui justifie de séparer les attributs d'un joueur en plusieurs tables, sauf si l'ensemble de ces attributs que tu regroupes dans des tables sont des entités à part entières. Par exemple, un lot de certaines caractéristiques pourraient être regroupées pour devenir un comportement, et être attribuées à plusieurs persos / monstres...
Plus il y a de tables, plus il y aura de jointures. Vu qu'il s'agit a priori de relations 1-1, il y aura autant d'enregistrements dans toutes les tables. Les fichiers seront juste un peu plus légers.