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

Modélisation Discussion :

1 clé étrangère pour X tables [Toutes versions]


Sujet :

Modélisation

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Analyste Programmeur
    Inscrit en
    Juin 2007
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Analyste Programmeur

    Informations forums :
    Inscription : Juin 2007
    Messages : 38
    Points : 31
    Points
    31
    Par défaut 1 clé étrangère pour X tables
    Bonjour,

    j'ai un petit soucis de modélisation, et je me demande si ce que je cherche à faire est réalisable ou si je vais devoir créer un max de table identiques...

    Je m'explique :


    Je développe un logiciel de gestion de biens (bouquins, cd, musique, vidéos).

    Dedans, je compte mettre une gestion de prêts. Pour pas avoir 4 tables de prêt (une par type de bien), je comptais faire :

    id_pret
    id_type_bien
    id_bien
    id_emprunteur


    Avec id_pret en PK auto-incrémentale, id_type_bien reliée a une table contenant 4 entrées (pour chacune des tables), et le fameux soucis : id_bien, qui doit parfois aller chercher l'id du livre, parfois l'id du jeu, etc... en fonction du id_type_bien choisi



    Suis-je donc obligé de faire 4 tables de prêts de ce type :
    id_pret
    id_bien
    id_emprunteur


    Merci

  2. #2
    Responsable Arduino et Systèmes Embarqués


    Avatar de f-leb
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2009
    Messages
    12 617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 12 617
    Points : 56 722
    Points
    56 722
    Billets dans le blog
    40
    Par défaut
    bonjour,

    il faut passer par l'héritage des données: http://warin.developpez.com/tutoriel...onnees-access/

    Bien-1-------1-bouquin
    |---1-------1-cd
    |---1-------1-Video

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Analyste Programmeur
    Inscrit en
    Juin 2007
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Analyste Programmeur

    Informations forums :
    Inscription : Juin 2007
    Messages : 38
    Points : 31
    Points
    31
    Par défaut
    Merci de ta réponse, mais je ne vois pas comment le faire avec héritage.

    Contrairement a ce qu'on voit dans la page que tu m'as donné, mes id_livre/id_cd/id_dvd peuvent apparaitre plusieurs fois dans la table des prets, car je ne les supprimes pas lors des retours (j'indique juste la date de retour, me permettant de faire des stats sur ce qui est le plus emprunté).

  4. #4
    Responsable Arduino et Systèmes Embarqués


    Avatar de f-leb
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2009
    Messages
    12 617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 12 617
    Points : 56 722
    Points
    56 722
    Billets dans le blog
    40
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Bien :
    idBien	CodeBien	…
    1	xxxxx
    2	yyyyy
    3	zzzzzz
    4	ttttttt
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Bouquin :
    idBien	TitreBouquin 			TypeBouquin
    1	Achille Talon a un gros nez	BD
    2	Gaffe à Lagaffe			BD
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Cd :
    idBien	Artiste
    3	U2
    4	Tina Turner
    Les biens 1 et 2 sont des bouquins, les biens 3 et 4 sont des cd.

    Il faut ensuite raccorder les prêts à la table générique Bien.
    Prêt-1------∞-EmpruntBien-∞------1-Bien

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Analyste Programmeur
    Inscrit en
    Juin 2007
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Analyste Programmeur

    Informations forums :
    Inscription : Juin 2007
    Messages : 38
    Points : 31
    Points
    31
    Par défaut
    ok je vois.

    Du coup, impossible d'avoir un id_bouquin =1 si j'ai un id_cd = 1


    Cela me pose quelques soucis de gestion de creation ca (devoir verifier sans cesse quel est le dernier numéro saisi... dans une table speciale conservant le last_id j'suppose?)

  6. #6
    Responsable Arduino et Systèmes Embarqués


    Avatar de f-leb
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2009
    Messages
    12 617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 12 617
    Points : 56 722
    Points
    56 722
    Billets dans le blog
    40
    Par défaut
    (devoir verifier sans cesse quel est le dernier numéro saisi... dans une table speciale conservant le last_id j'suppose?)
    Non, inutile.
    Dans le processus, on commence par créer le bien :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Bien :
    idBien	CodeBien	…
    1	xxxxx
    idBien est une clé primaire de type numeroAuto puis après choix du type de bien (liste déroulante), on complète la table spécifique, par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Bouquin :
    idBien	TitreBouquin 			TypeBouquin
    1	Achille Talon a un gros nez	BD
    Bouquin.idBien est clé primaire (entier long) mais aussi une clé étrangère qui référence Bien.idBien

    Donc tous les biens bouquin, cd, vidéo,… sont numérotés séquentiellement 1, 2, 3, … grâce au numeroAuto (voir tuto pour les exemples d’IHM avec sous-formulaire)

    Du coup, impossible d'avoir un id_bouquin =1 si j'ai un id_cd = 1
    Effectivement dans ce modèle un bouquin et un cd sont des biens, et tu ne peux avoir deux biens avec le même numéro.
    Si tu as déjà des tables bouquin, cd… déjà créées il faudra refaire la numérotation avec des requêtes de mise à jour.

  7. #7
    Nouveau membre du Club
    Homme Profil pro
    Analyste Programmeur
    Inscrit en
    Juin 2007
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Analyste Programmeur

    Informations forums :
    Inscription : Juin 2007
    Messages : 38
    Points : 31
    Points
    31
    Par défaut
    Je vois ce que tu veux dire

    J'ai déjà utilisé ce procédé ailleurs, mais s'il ne m'est pas venu a l'esprit, c'est que j'ai dans l'idée que mon projet actuel pourrait être facilement "coupé", en supprimant par exemple une section intégrale.

    Un peu comme lorsqu'on installe office, on choisit d'installer ou non word, excel, access, etc...

    Je souhaitais également proposer des choix différents d'installation, et donc que la base de donnée puisse aisément être fonctionnelle séparément.

    C'est donc possible par héritage, mais j'ai un peu trop voulu commencer à travailler section par section, et donc forcément je n'avais rien qui se recoupait ^^""


    J'ai plus qu'a refaire ma BDD ! heureusement que coté insert, seuls mes bouquins sont renseignés, comme ça j'ai aucune fois 2 biens avec le meme id ^^


    Merci pour ton aide, problème résolu

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

Discussions similaires

  1. Réponses: 8
    Dernier message: 26/03/2008, 16h58
  2. [ Design ] commentaires pour plusieurs tables
    Par Celelibi dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 31/10/2005, 18h08
  3. Changement de tablespace pour une table
    Par slyv dans le forum Oracle
    Réponses: 5
    Dernier message: 28/04/2005, 20h46
  4. Créer une partition pour une table
    Par Erakis dans le forum SQL Procédural
    Réponses: 22
    Dernier message: 28/02/2005, 18h39
  5. déf de type pour créer table
    Par boucher_emilie dans le forum Langage SQL
    Réponses: 3
    Dernier message: 20/07/2004, 15h28

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