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

Décisions SGBD Discussion :

Avis de choix structurel d'une base


Sujet :

Décisions SGBD

  1. #1
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2010
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2010
    Messages : 38
    Par défaut Avis de choix structurel d'une base
    Bonjour,

    J'aimerai modéliser une base de données de facturation/bon de commandes clients Pro et Particuliers sur une base PostgreSQL (la souplesse du NoSQL aurait été une bonne solution, sans doute sur une prochaine release avec totale refonte....)

    J'étais parti sur une structure à 4 tables (hormis les sous tables que je ne n'expose pas pour la simplicité du post), même si j'aurai pu exploiter la table Factures pour les bdc je prefère les séparer principalement pour des raisons de droits mais également de gestion.

    * Factures (id, personne_id, societe_id.....) avec soit personne_id doit societe_id pouvant être null selon à qui est destiné la facture.
    * Bdc (id, personne_id, societe_id.....) doit avec personne_id doit societe_id pouvant être null selon à qui est destiné le bon de commande.
    * Societes (id....)
    * Personnes (id, societe_id ...) societe_id etant null si il s'agit d'un particulier.

    Une autre solution aurait été de créer une structure comportant une 6 bases principales mais du coup le nombre de sous tables augmentent tout autant et on se retrouve avec beaucoup de redondance :
    * Societe
    * Facture_Societe
    * Bdc_Societe
    * Particulier
    * Facture_Particulier
    * Bdc_particlier

    Quel serait le choix le plus propres et auriez-vous d'autre solution à proposer toujours dans un cadre SQL.

    Merci

  2. #2
    Expert confirmé
    Avatar de Mat.M
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    8 568
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 8 568
    Par défaut
    Citation Envoyé par Wisevolk Voir le message
    J'aimerai modéliser une base de données de facturation/bon de commandes clients Pro et Particuliers
    ça c'est un problème archi-classique des bases de données
    en général on a une table facture avec un numéro/référence, date d'émission et montant total ( en anglais Invoice Order j'écris ça pour les gens qui utilisent des ERP )
    Ensuite on crée une table avec les lignes de facturations , montant unitaire hors-taxe et le numéro de facture à laquelle la ligne de facture est rattachée ( Invoice Detail)


    Citation Envoyé par Wisevolk Voir le message
    Une autre solution aurait été de créer une structure comportant une 6 bases principales mais du coup le nombre de sous tables augmentent tout autant et on se retrouve avec beaucoup de redondance :
    Quel serait le choix le plus propres et auriez-vous d'autre solution à proposer toujours dans un cadre SQL.
    avant de faire le schéma d'une BDD relationnelle il faudrait effectuer la normalisation de la base de données en elle-même ( 1ière,2ième,3ième forme normale...)
    ça permet d'éviter les redondances
    *tuto de DVP
    *explications Microsoft
    Wikipedia mais un peu compliqué

  3. #3
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2010
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2010
    Messages : 38
    Par défaut
    Merci pour votre réponse,

    j'ai sans doute mal exprimé mon interrogation, je n'ai pas de problème pour schématiser la facturation.

    Mon problème provient de la schématisation des entités facturées à savoir des Personnes (Particuliers) ou des Sociétés, sachant qu'une société inclue une liste de contacts (table Personnes).

    Pour le moment je pars sur ma première structure (4 tables plus les sous-tables) mais je cherchais à savoir s'il n'existait pas une solution(un pattern) plus propre que celle qui consiste à avoir des colonnes comportant des valeurs nulles sans pour autant devoir multiplier le nombre tables.

  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
    22 029
    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 : 22 029
    Billets dans le blog
    6
    Par défaut
    Citation Envoyé par Wisevolk Voir le message
    Merci pour votre réponse,

    j'ai sans doute mal exprimé mon interrogation, je n'ai pas de problème pour schématiser la facturation.

    Mon problème provient de la schématisation des entités facturées à savoir des Personnes (Particuliers) ou des Sociétés, sachant qu'une société inclue une liste de contacts (table Personnes).

    Pour le moment je pars sur ma première structure (4 tables plus les sous-tables) mais je cherchais à savoir s'il n'existait pas une solution(un pattern) plus propre que celle qui consiste à avoir des colonnes comportant des valeurs nulles sans pour autant devoir multiplier le nombre tables.
    A lire :
    https://blog.developpez.com/exercice...n_de_personnes
    https://blog.developpez.com/exercice..._d_une_adresse

    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
    Modérateur

    Profil pro
    dba
    Inscrit en
    Janvier 2010
    Messages
    5 643
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : dba

    Informations forums :
    Inscription : Janvier 2010
    Messages : 5 643
    Par défaut
    Bonjour,

    Citation Envoyé par Wisevolk Voir le message
    je cherchais à savoir s'il n'existait pas une solution(un pattern) plus propre
    Si, cela s’appelle l'héritage.
    En gros, une table Client, et deux tables (pro et particulier) qui héritent de Client.
    Votre table facture peut ensuite référencer directement la table client.

  6. #6
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2010
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2010
    Messages : 38
    Par défaut
    Merci,
    entre temps je suis également tombé sur cette solution en parcourant la doc de Postgres
    Pour le moment j'ai résolu le problème en modifiant la structure pour une jointure personne/société dans la mesure où une société et "forcément" représenté par un contact.
    Je marque le sujet comme résolu, une fois de plus merci pour votre aide.

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

Discussions similaires

  1. Avis sur la structure d'une base de données
    Par ange_dragon dans le forum Modélisation
    Réponses: 2
    Dernier message: 29/05/2007, 16h45
  2. Choix Interface D'une base de données
    Par gigigao dans le forum MFC
    Réponses: 6
    Dernier message: 10/01/2006, 15h58
  3. choix d'une base de donnée
    Par frisouille dans le forum Décisions SGBD
    Réponses: 1
    Dernier message: 17/06/2005, 16h52
  4. Choix d'une base de données
    Par AlexB59 dans le forum Décisions SGBD
    Réponses: 1
    Dernier message: 07/06/2005, 18h02
  5. Choix d'une base de données
    Par maurice66 dans le forum Décisions SGBD
    Réponses: 1
    Dernier message: 15/07/2004, 11h14

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