IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage SQL Discussion :

Table "Adresse"


Sujet :

Langage SQL

  1. #1
    En attente de confirmation mail
    Inscrit en
    Mai 2004
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 17
    Points : 12
    Points
    12
    Par défaut Table "Adresse"
    Bonjour à tous,

    Je me posais une question : dans ma base, j'ai une table TAB_CLIENT et une table TAB_SOCIETE.

    Dans la table TAB_PROSPECT, j'ai une colonne ADRESSE_FACTURATION, et une colonne ADRESSE_LIVRAISON.

    Dans la table TAB_SOCIETE, j'ai aussi une colonne ADRESSE_SOCIETE.

    Je me disais donc pourquoi ne pas tout regrouper dans une table TAB_ADRESSE et des clés étrangères dans les tables TAB_CLIENT et TAB_SOCIETE, qui se réfèrent aux adresses dans la table TAB_ADRESSE ?

    Qu'en pensez-vous ?

  2. #2
    Membre confirmé Avatar de lper
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    396
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2004
    Messages : 396
    Points : 641
    Points
    641
    Par défaut
    Tu as une seule colonne pour stocker l'adresse ?
    (Il n'y a pas de code postal, de localité, de code pays ?)
    Dans ce cas, tu n'as pas besoin d'une gestion d'adresse à mon avis et je ne vois pas l'intérêt de créer une table avec une seule colonne !
    La faiblesse humaine est d'avoir des curiosités d'apprendre ce qu'on ne voudrait pas savoir

  3. #3
    En attente de confirmation mail
    Inscrit en
    Mai 2004
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 17
    Points : 12
    Points
    12
    Par défaut
    Non non, j'ai un champ "adresse" qui contient n° et voie. un champ "code_postal", un champ "ville", et un champ "pays".

  4. #4
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 782
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 782
    Points : 52 783
    Points
    52 783
    Billets dans le blog
    5
    Par défaut
    il vaut toujours mieux créer une table d'adresse indépendante des entités liées avec cette table, ceci pour des raisons de mise à jour. Le fin du fin est :
    1) de typer les adresses (facturation, livraison...)
    2) de prévoir une table fille pour les lignes d'adresse

    Exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    CREATE TABLE TR_TYPE_ADRESSE_TAD
    (TAD_ID INT PRIMARY KEY NOT NULL,
     TAD_TYPE VARCHAR(16))
     
    CREATE TABLE T_ADRESSE_ADR
    (ADR_ID INT PRIMARY KEY NOT NULL,
     TAD_ID INT FOREIGN KEY REFERENCES TR_TYPE_ADRESSE_TAD (TAD_ID),
     ADR_CODE_POSTAL CHAR(5) NOT NULL,
     ADR_VILLE VARCHAR(38) NOT NULL)
     
    CREATE TABLE T_LIGNE_ADRESSE_LAD
    (LAD_ID INT PRIMARY KEY NOT NULL,
     ADR_ID INT FOREIGN KEY REFERENCES T_ADRESSE_ADR (ADR_ID),
     ADR_LIGNE VARCHAR(38) NOT NULL)
    ceci afin de faciliter les recherches et les mises à jour

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  5. #5
    Membre confirmé Avatar de lper
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    396
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2004
    Messages : 396
    Points : 641
    Points
    641
    Par défaut
    Donc tu as toi même la réponse !
    Ton adresse est bien structurée et doit être à mon avis mise en forme par une table.
    Un article qui pourra te convaincre :
    http://sqlpro.developpez.com/OptimSQL/SQL_optim.html
    La faiblesse humaine est d'avoir des curiosités d'apprendre ce qu'on ne voudrait pas savoir

  6. #6
    En attente de confirmation mail
    Inscrit en
    Mai 2004
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 17
    Points : 12
    Points
    12
    Par défaut
    Merci beaucoup. Je vais suivre tes conseils Frédéric.

    Par contre Pourquoi créer une table fille avec uniquement les lignes d'adresses ? Pourquoi ne pas les intégrer dans la table T_ADRESSE
    ?

+ Répondre à la discussion
Cette discussion est résolue.

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo