Structurer Base De Donnée

Bonjour,

J'aimerai savoir si avoir plusieurs tables identiques (avec les données à l'intérieur qui changent) en SQL était une mauvaise organisation des données.

Merci d'avance pour vos réponse.

7 réponses

  1. Contributeur
    Bonjour,

    Oui, sans hésitation. Si tu as plusieurs tables identiques, il est nettement plus efficace de les fusionner.

    Imaginons que tu sois gérant d'un hotel. Si ta base de données contient deux tables de réservations (une pour les grandes chambres, une pour les petites), et bien elle est mal organisée. Ca pourraient être les tables suivantes:

    RESERVATION_GRANDES:Num_chambre, date_in, date_out
    RESERVATION_PETITES:Num_chambre, date_in, date_out

    Qui devraient être fusionnées en une seule table:
    RESERVATION:Num_chambre, date_in, date_out,taille
    1. D'accord merci pour ta réponse rapide.

      Mais moi je travail sur un projet d'une entreprise de transport où j'ai l'impression que je n'ai pas le choix que de faire des tables identiques car chaque table donne des tarifs différents en fonction de l'endroit où doit être livré la marchandise et en fonction de son poids
      1. Pour compléter mon derniers post, est-il possible que desfois on est pas le choix que de créer plusieurs tables identiques avec (toutes) les données qui changent à l'intérieur ?

        Merci d'avance pour la réponse.
        1. Contributeur
          Elles sont structurées comment tes tables ? Pour un tarif, je ferais une table du style:

          TARIF:id_automatique,lieu_livraison,poids_marchandise,prix
          1. Elles sont structurée de la manière suivante :

            J'ai 4 plages de tarifs (Lyon, Marseille, Paris, Rouen)

            Exemple d'une des 4 tables :

            Pour Marseille :

            Departement (lieu de destination)
            inf500kg
            inf1t
            1_3t
            3_5t
            5_7t
            7_10t
            10_15t
            15_20t
            20_25t
            1. Contributeur
              Salut,

              Et bien c'est pile poil comme je te dis.

              Tu as 4 tables structurées comme ça:
              TARIF_VILLE#1:poids1,tarifpoids1,poids2,tarifpoids2,etc...

              Et ça, c'est le résultat de la requête sur ta table. Si tu veux optimiser tout ça, tu dois faire une table comme ça:
              TARIF:id_automatique,lieu_livraison,poids_marchandise,prix
              dont les différentes entrées seront, par exemple:

              1 Marseille <0.5T 10EUR
              2 Marseille >0.5T <1T 12EUR
              ...
              X Lyon <0.5T 16EUR
              X Lyon >0.5T <1T 18EUR

              Et pour afficher les tarifs de tes livraisons à Lyon, tu lui exécuteras une requête qui ressemble à:
              SELECT lieu_livraison,poids_marchandise,prix FROM TARIF WHERE lieu_livraison="Lyon"
              1. Merci beaucoup pour tes réponses
                1. Contributeur
                  Mais de rien :-) Good luck pour la suite !