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

MS SQL Server Discussion :

Quelle structure pour ma base des ventes (devis->cmd->bp->bl->facture)


Sujet :

MS SQL Server

  1. #1
    Nouveau membre du Club
    Inscrit en
    Mars 2005
    Messages
    52
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 52
    Points : 26
    Points
    26
    Par défaut Quelle structure pour ma base des ventes (devis->cmd->bp->bl->facture)
    Bonjour,

    Je suis en train de développer une gestion commerciale avec vb.net et sql server 2008 express.

    Je souhaite créer une procédure stockée qui converti un devis en commande puis en bon de préparation, puis en bon de livraison, puis en facture. Je me demande comment structurer au mieux ma base :

    1) solution 1
    Je fais autant de table que d'étapes avec mes entêtes et mes lignes que je répètes à chaque fois
    - devisEntete (1 compteur pour une clé unique => N° de devis)
    - devisLignes
    - prepaEntete (1 compteur pour une clé unique => N° du bon de prépa)
    - prepaLignes
    - blEntete (1 compteur pour une clé unique => N° du bl)
    - blLignes
    - factureEntete (1 compteur pour une clé unique => N° de la facture)
    - factureLignes

    Le problème c'est que je vais faire beaucoup de jointures pour rapprocher toute ces étapes ce qui va ralentire l'affichage des informations (il y aura plus d'une centaine de devis par jour). De plus il faudra plus tard que je crais un procédure stockés pour archiver les "ventes" et ça sera plus simple si il n'y a que deux tables (les entêtes et les lignes).

    2) Solution 2
    Faire une seule table pour les entêtes et une autres pour les lignes avec tous les champs nécessaire (champs des devis, bon de prépa, bon de commande, bl, facture). Le problème c'est que je vais devoir créer plusieurs compteurs pour une même table (par exemple le numero de devis et le numero de bon de commande). Et je ne vois pas comment faire (mis à part créer une table compteurs à incérmenter à chaque fois).

    Qu'en pensez-vous ? Vous me conseillerez quelle méthode pour stocker les ventes ?

    Merci d'avance !

  2. #2
    Membre éprouvé

    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 448
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 448
    Points : 1 234
    Points
    1 234
    Par défaut
    La première qui n'amènera pas les problèmes de performance que vous présumez.

    Et si vous voulez limiter le nombre de jointures que vous auriez à écrire, vous pouvez toujours faire des vues.
    Most Valued Pas mvp

  3. #3
    Nouveau membre du Club
    Inscrit en
    Mars 2005
    Messages
    52
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 52
    Points : 26
    Points
    26
    Par défaut
    Bonjour,

    Merci pour votre réponse. J'ai fais pas mal de recherche et effectivement il n'est pas possible de mettre plusieurs compteurs dans une table. Je vais suivre votre conseil car effectivement avec les vue ça résout le problème des jointures.

    encore merci ;-)

Discussions similaires

  1. Réponses: 4
    Dernier message: 08/09/2009, 17h07
  2. Quelle structure de données ? Analyse des occurrences d'un trigramme
    Par Tidus159 dans le forum Algorithmes et structures de données
    Réponses: 46
    Dernier message: 12/04/2009, 19h35
  3. [Architecture] Quelle structure pour mon site ?
    Par bazounet21 dans le forum Général Conception Web
    Réponses: 3
    Dernier message: 08/02/2008, 10h24
  4. Réponses: 3
    Dernier message: 31/10/2007, 15h14
  5. Réponses: 8
    Dernier message: 21/09/2007, 15h51

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