Table MySQL

Bonjour,

J'aurais besoin de vos conseils pour la création d'un/de table(s)
Je pensais faire comme ça :

Pays | Region | Departement ....

Est ce mieux d'enregistrer dans Pays, région et département un numéro d'id qui sera lié a 3 autres tables ou bien mettre directement dans cette table ?

Car après j'aurais besoni de faire des recherches dans cette table donc je faire le meilleur moyen pour que ce soit optimisé ;)

Merci

7 réponses

  1. Il vaut mieux stocker uniquement l'id du département et faire 3 tables :
    - PAYS : id - nom
    - REGION : id - nom - id_du_pays
    - DEPARTEMENT : id - nom - id_de_la_region

    Comme ça tu as une vraie hierarchie et tu peux donner des contraintes à tes utilisateurs, faire des recherches...
    1
    1. Oui, c'est bien ce que je pensais faire mais une question me vient. C'est pour la recherche, est ce vraiment mieux ?
      Si je recherche par exemple un département ou une region, il faudrait lier les deux tables ? Tu ferais comment ?

      Merci
      0
      1. Le département sait dans quelle région il est avec id_de_la_region, la région sait dans quel pays elle est avec id_du_pays. Pour tes recherches tu as :
        DEPARTEMENT.id_de_la_region = REGION.id
        et
        REGION.id_du_pays = PAYS.id
        0
        1. Oui, ok
          Mais comment tu arrives à l'id.. pays/region ... ?
          Ca fait faire une autre requête précédente ?
          0
          1. sans requete précise je ne peux pas te dire grand chose, tu veux faire quoi exactement ?
            0
            1. Si dans cette table, je veux rechercher par exemple une région, il me faudra bien l'id de cette région ?
              0
              1. Bah oui , chaque table contient un id, un nom et l'id de son "parent" (sauf pour PAYS bien sur)
                0