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

VB 6 et antérieur Discussion :

Conception de la base de données d'une vidéothèque


Sujet :

VB 6 et antérieur

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Novembre 2005
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 16
    Par défaut Conception de la base de données d'une vidéothèque
    Bonsoir, mon mini-projet d'études consiste à développer une application en vb6 qui permet de gérer une vidéothèque, à l'intermédiaire d'une base de donnée Ressources.mdb qui contient les différentes tables et informations de stocks/clients relatif à la vidéothèque.

    Pour ce faire, j'ai commencé à développer en premier lieu une MDI Form qui contient un menu:
    - VHS
    - VCD
    - DVD

    Si on clique sur l'un de ces trois sous-menus, par exemple VHS, on a une nouvelle fenêtre qui s'ouvre contenant un composant Adodc, une datagrid, des boutons pour ajouter/supprimer/rechercher une VHS, Et un bouton intitulé: Louer . lorsqu'on clique dessus, une autre fenêtre contenant les informations relatifs au film choisi dans le datagrid de la form VHS.

    Le problème c'est que je n'arrive pas à concevoir la base de données.
    Ma base contient les tables suivants:
    - Tables: VHS, DVD, VCD (contenant le stock des films, les champs sont: Code, nom, acteur, genre, type, quantité)
    - Table Clients: contient les différents clients, les champs sont: Code, nom, adresse, nombre d'articles loués, etc..

    Mais comment puis-je mentionner par exemple que le film X est loué par le client Y ?
    Je ne suis pas fort en base de données et en access, j'ai entendu parlé de ce que l'on appelle: relation entre les tables.
    Un ami m'a dit brièvement de créer une table intermédiaire intitulée locations.
    Je ne trouve pas l'idée comment concevoir cette troisième table intermédiaire et ce qu'elle doit contenir comme champs.

    Je vous prie de ne pas hésiter à m'aider pour résoudre mon problème ou pour m'aider à améliorer mon projet.

    Cordialement

  2. #2
    Membre Expert
    Avatar de zazaraignée
    Profil pro
    Étudiant
    Inscrit en
    Février 2004
    Messages
    3 174
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2004
    Messages : 3 174
    Par défaut
    La table intermédiaire sert à créer une relation de plusieurs à plusieurs entre deux tables. C'est impossible de le faire directement d'une table à l'autre dans la plupart des SGBD (dont Access).

    Par exemple, dans une base de données d'une bibliothèque, une table intermédiaire peut servir à identifier les auteurs qui ont écrit plusieurs livres et les livres qui ont plusieurs auteurs. Voir l'illustration plus bas.

    Tu trouveras des tutoriels sur Access dans la partie MS Office du site Développez. Ça devrait te donner un coup de main.

    Pour les notions de relations entre les tables, tu peux avoir des explications dans la plupart des tutoriels et livres traitant de bases de données relationnelles.

  3. #3
    Expert confirmé
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 132
    Par défaut
    Mon propos n’est pas de faire ton boulot, mais de te permettre de démarrer avec des chances de ne pas trop galérer.

    Un petit conseil, qui n'engage que moi, mais qui est bien pratique quand on construit et relit le code source, dans tes différentes tables, dans ta table VHS, au lieux de Code, nomme la CodeVHS, dans la table VCD, CodeVCD, ...... dans la table Client, CodeClient ... etc..

    Pour tes 3 tables articles, moi je n'en ferai qu'une en rajoutant le champs TypeSupport, ou j'y mettrait "VHS" ou "VDC" ou "DVD", et le champs Code devenant CodeArticle, je rajouterai un champs OuEstArticle, servant a situer ou est rangé l'article dans le magasin.

    Tous ces champs commencent par Code sont des champs clefs qui vont sûrement te servir a manipuler toutes tes tables de ta base de données, si ces champs portent un nom bien explicite, c'est beaucoup plus facile a suivre les lignes de commandes dans ton programme.

    Dans ta table Client, le champ nombre d'articles loués ne me semble pas nécessaire, tu retrouves cette information dans la table Location.

    Pour ta Table location, un champ CodeClient, un champ CodeArticle, un champ SousCodeArticle, un champ DateSortie, un champ DateRetour, et un champs TypePayement, me semble pas mal.
    Détails de cette table Location avec quoi remplir ces champs:
    CodeClient, provient de la table Client donc exactement du même type
    CodeArticle, provient de la table Article donc exactement du même type
    SousCodeArticle, si il y a plusieurs Titres de cet article, chacun aura une étiquette spécifique correspondant par exemple 1 à Nbr du même article, les étiquettes pourraient ce présenter comme ça,
    1234-1, 1234-2, 1234-3 pour 3 mêmes articles dispo a la location, 1234(codeArticle) -1 (N° spécifique).
    DateSortie, date du jour de la location
    DateRetour, égal a DateSortie + Nbr de jour loué
    TypePayement, égal a "numéraire" ou "CB" ou "Cheque" ou .....

    Un scénario
    Un client arrive au comptoir avec 1 articles, est-il connu de la BD (du magasin)?
    - NON, l'inscrire en ouvrant la table Client, remplir les champs, enregistrer en ajout (AddNew)
    - OUI, ouvrir sélectivement (Where) la Table Client avec pour critère son NOM, récupérer son CodeClient
    OU
    en imaginant qu'il est une carte qui lui a été remis lors de son inscription sur lequel ce trouve son N° CodeClient
    ouvrir la Table Location
    remplir les champs
    CodeClient, récupérer dans la table client ou sur la carte du client
    CodeArticle, ce trouve sur la pochette de l'article, tous les chiffres avant le séparateur -
    SousCodeArticle, ce trouve sur la pochette de l'article, tous les chiffres après le séparateur -
    DateSortie, date du jour
    DateRetour, DateAdd("d",Nbr de jour louer,date du jour)
    TypePayement, vue plus haut
    Comme c'est un client exigeant (et pas debrouillard ), il n'a pas trouvé un titre dans les bacs, pour savoir si la boutique a le titre
    tenter l'ouverture de la table Article, avec pour critère le champs Titre = (ou Like) Le titre demandé par le client
    Le titre est trouvé, est-il en magasin ?
    ouvrir la table Location avec pour critère le CodeArticle, renvoyé par la table ouverte ligne au dessus, en demandant un classement du champs DateRetour (Order By)
    si Nbr de ligne Location plus petit que Quantité de la table Article, l'article est disponible, avec le champs OuEstArticle, lui indiquer dans quel bac il se trouve (ou aller lui chercher, s'est plus commerciale)
    si Nbr de ligne Location = Quantité de la table Article, tous les articles sont en cours de location, donc non disponible, mais il est possible d'indiquer qu'il sera disponible a la date DateRetour.
    Ce client est connu depuis un certain temps, ouvrir la table Location avec 2 critères DateRetour < date du jour et RetourOk = False
    Si une ou plusieurs lignes correspondent aux critères, vous pouvez lui rappeler qu’il n’a pas rapporté dans les temps les dernières locations.

    Les mots de cette couleur, sont des mots dont tu pourras rechercher l'entiéreté de leurs significations avec F2 et F1 dans ton editeur VB.
    Les possibilités indiquées de manipulations d’une BD et l’analyse des résultats sont immenses, je n’en ai abordé que très peu.
    :whistle:pourquoi pas, pour remercier, un :plusser: pour celui/ceux qui vous ont dépannés.
    saut de ligne
    OOOOOOOOO👉 → → Ma page perso sur DVP ← ← 👈

  4. #4
    Membre averti
    Inscrit en
    Novembre 2005
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 16
    Par défaut
    Merci infiniment d'avoir répondu.
    Merci zazaraignée.
    Merci encore progElect pour les explications que tu m'as apportés, ils m'étaient très utiles afin que je puisse avoir une meilleure vue pour mon mini-projet.
    C'est vrai, je ne demande pas qu'on fasse le travail à ma place, mais de telles explications et de telles argumentations me seraient très utiles, vu qu'ils proviennent des membres expérimentés en programmation et en VB.
    Merci encore.

Discussions similaires

  1. conception de base de données pour une station de service
    Par ghassen123 dans le forum Modélisation
    Réponses: 2
    Dernier message: 29/04/2010, 15h28
  2. Réponses: 2
    Dernier message: 28/03/2008, 19h23
  3. Conception d'une base de donnée pour une banque
    Par simo1050 dans le forum Modélisation
    Réponses: 3
    Dernier message: 07/11/2007, 16h34
  4. [Conception] connexion de deux bases de données dans une page en php
    Par leclone dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 13/04/2007, 14h59
  5. Réponses: 4
    Dernier message: 30/01/2007, 14h42

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