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

MySQL Discussion :

Attention je suis nul [MySQL-5.6]


Sujet :

MySQL

  1. #1
    Membre à l'essai
    Inscrit en
    Mai 2009
    Messages
    6
    Détails du profil
    Informations personnelles :
    Âge : 34

    Informations forums :
    Inscription : Mai 2009
    Messages : 6
    Points : 13
    Points
    13
    Par défaut Attention je suis nul
    Oui le titre peut faire rire mais je suis vraiment un noob dans tous je débute

    Bonjour/Bonsoir a vous

    Avant toute autre chose je tiens a m'excuser si je fais un doublon d'un autre topique car j'ai vraiment eu la flemme de parcourir toutes les discussions par manque de temps , car oui je suis dans une (excusez moi l'expression) une grosse merde

    Alors , on fait un travail de groupe consistant a créer une BDD pour une bibliothèque , une interface graphique pour gérer les emprunts....etc , mon soucis c'est que je m'occupe de la partie consultation du catalogue , et pour ce faire , il m'a fallut
    bien-sur créer une petite BDD avec comme tables initiales `livres`et `auteur`, tout s'est bien passé jusqu'au moment ou je lise qu'il faut prendre en compte qu'un seul livre peut avoir plusieurs auteurs ( et bien-sur un auteur peut avoir plusieurs livre mais ça c'est faisable ).

    Ma question est la suivante : sur phpmyadmin , que dois je faire pour avoir attribuer plusieurs auteurs a un meme livre ?

    Au grand plaisir de lire vos reponses rapidement car le temps me manque enormement , encore une fois , si j'ai fait telle ou telle boulette dites le moi je ne suis pas un habitué des forum , et merci d'avance pour les retours

  2. #2
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 10 133
    Points : 38 556
    Points
    38 556
    Billets dans le blog
    9
    Par défaut
    Bonjour,

    il existe un grand nombre de logiciels libres (gratuits) permettant de gérer une bibliothèque, que vous pouvez télécharger sur le web.
    Les informations concernant les ouvrages (livres, cd, films, périodiques etc...) et notamment leurs auteurs, sont stockées dans ce qu'on appelle des "notices"
    Ces notices peuvent également être téléchargées gratuitement, par exemple sur le site moccam : http://www.moccam-en-ligne.fr/
    L'un des auteurs est stocké dans la zone consacrée, les autres le sont aussi, mais dans une zone co-auteur
    Pour les BD, c'est le nom du scénariste qui doit être stocké

  3. #3
    Membre à l'essai
    Inscrit en
    Mai 2009
    Messages
    6
    Détails du profil
    Informations personnelles :
    Âge : 34

    Informations forums :
    Inscription : Mai 2009
    Messages : 6
    Points : 13
    Points
    13
    Par défaut
    Salut, merci pour ta réponse mais je ne sais pas si jnai été clair dans mon exposition du problème car ce que tu me dis la je ne pense pas (a moins que j'ai mal compris) que cela puisse m'aider.
    Je vais tenter d'être plus explicite :
    Dans ma BDD j'au 2 tables : "livres" et l'autre " auteur", la clé unique de la table "livres" est le "code ISBN" du dit livre, et celle de la table "auteur" est "IdAuteur".
    Mon problème est qu'il existe des livres avec plusieurs auteurs (le meme livre et donc meme ISBN, biensur je ne vais certainement pas pouvoir creer plusieurs instances de ce livre avec différents IdAuteur) comment je peux rendre ca possible en phpmyadmin ?
    Résumé :comment mettre plusieurs instances d'un attributs (IdAuteur de la table auteur dans mon cas) sur une meme instance ( IdAuteur de la table livres)
    J'espère que j'ai été plus clair cette fois-ci

  4. #4
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 10 133
    Points : 38 556
    Points
    38 556
    Billets dans le blog
    9
    Par défaut
    C'est bien ce que j'avais compris, plusieurs auteurs pour un même ouvrage (livre ou autre peu importe)
    Et donc, dans les notices que l'on peut télécharger il y a :
    - une zone auteur qui contient le premier auteur de la liste ==> correspond à la colonne auteur de la table de votre base de données
    - une ou plusieur zones autres auteurs (désolé je n'ai pas de notice sous les yeux pour vérifier, il me semble de mémoire que c'est une zone unique contenant les autres auteurs sans format particulier comme un bloc notes)

    Par contre attention : les ouvrages anciens n'ont pas d'ISBN ! c'est donc une mauvaise idée de prendre ce critère comme identifiant dans vos tables
    quand je dis ancien, pas tant que ça, la généralisation des ISBN doit dater des années 70. Donc sauf si votre bibliothèque ne propose que des livres récents, il faut utiliser un autre identifiant

    La plupart des bibliothèques utilisent un code à barre comme identifiant ou un numéro interne, séquentiel.

    Attention là aussi à ne pas utiliser le code à barre marchand : comme pour l'ISBN, les vieux livres n'ont pas de CàB et il n'y a pas de garantie d'unicité avec un code marchand

    Les bibliothèques utilisent donc un CàB interne (pour leurs ouvrages propres) ou fourni par la bibliothèque départementale de prêt (pour les ouvrages en prêt)
    il convient bien sur de définir, en accord avec la bib départementale, d'une plage de CàB non utilisée (pour éviter les doublons) ni par la bib départementale, ni par les autres bibs du département

    Edit : autre argument en défaveur de l'ISBN, si votre bib prête autre chose que des livres (c'est souvent le cas, exemple des CD ou DVD) alors il n'y a pas d'ISBN

  5. #5
    Expert éminent sénior Avatar de Artemus24
    Homme Profil pro
    Agent secret au service du président Ulysses S. Grant !
    Inscrit en
    Février 2011
    Messages
    6 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Agent secret au service du président Ulysses S. Grant !
    Secteur : Finance

    Informations forums :
    Inscription : Février 2011
    Messages : 6 379
    Points : 19 060
    Points
    19 060
    Par défaut
    Salut à tous.

    Citation Envoyé par Hkmelo
    que dois je faire pour avoir attribuer plusieurs auteurs a un meme livre ?
    Citation Envoyé par Hkmelo
    comment mettre plusieurs instances d'un attributs (IdAuteur de la table auteur dans mon cas) sur une même instance (IdAuteur de la table livres)
    Je reformule ta demande :
    --> tu as une table des livres (*id_livre ; nom du livre ; classement ...)
    --> tu as une table des auteurs (*id_auteur ; nom ; prénom ; naissance ...).
    --> un auteur peut écrire plusieurs livres différents.
    --> un livre est écrit par plusieurs auteurs différents.

    Il faut créer une table des associations auteur - livre.
    Dans cette table, tu mets le couple (id_auteur ; id_livre) en tant que clef primaire.

    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    --------------
    SET AUTOCOMMIT = 0
    --------------
     
    --------------
    START TRANSACTION
    --------------
     
    --------------
    DROP DATABASE IF EXISTS `base`
    --------------
     
    --------------
    CREATE DATABASE `base`
        DEFAULT CHARACTER SET `utf8`
        DEFAULT COLLATE       `utf8_unicode_ci`
    --------------
     
    --------------
    DROP TABLE IF EXISTS `auteur`
    --------------
     
    --------------
    CREATE TABLE IF NOT EXISTS `auteur`
    ( `id`       integer unsigned NOT NULL auto_increment,
      `nom`      char(10)  DEFAULT NULL,
      `prenom`   char(10)  DEFAULT NULL,
      Primary Key (`id`)
    ) ENGINE=InnoDB
      DEFAULT CHARSET=`utf8` COLLATE=`utf8_unicode_ci`
      ROW_FORMAT=COMPRESSED
    --------------
     
    --------------
    INSERT INTO `auteur` (`nom`, `prenom`) VALUES
      ('écrivain 1', 'albert'), ('écrivain 2', 'marcel'), ('écrivain 3', 'henri')
    --------------
     
    --------------
    select * from auteur
    --------------
     
    +----+------------+--------+
    | id | nom        | prenom |
    +----+------------+--------+
    |  1 | écrivain 1 | albert |
    |  2 | écrivain 2 | marcel |
    |  3 | écrivain 3 | henri  |
    +----+------------+--------+
    --------------
    DROP TABLE IF EXISTS `livre`
    --------------
     
    --------------
    CREATE TABLE IF NOT EXISTS `livre`
    ( `id`       integer unsigned NOT NULL auto_increment,
      `titre`    char(10)  DEFAULT NULL,
      Primary Key (`id`)
    ) ENGINE=InnoDB
      DEFAULT CHARSET=`utf8` COLLATE=`utf8_unicode_ci`
      ROW_FORMAT=COMPRESSED
    --------------
     
    --------------
    INSERT INTO `livre` (`titre`) VALUES
      ('bouquin 1'),('bouquin 2'),('bouquin 3')
    --------------
     
    --------------
    select * from livre
    --------------
     
    +----+-----------+
    | id | titre     |
    +----+-----------+
    |  1 | bouquin 1 |
    |  2 | bouquin 2 |
    |  3 | bouquin 3 |
    +----+-----------+
    --------------
    DROP TABLE IF EXISTS `assoc`
    --------------
     
    --------------
    CREATE TABLE IF NOT EXISTS `assoc`
    ( `auteur`   integer unsigned not null,
      `livre`    integer unsigned not null,
      Primary Key (`auteur`,`livre`)
    ) ENGINE=InnoDB
      DEFAULT CHARSET=`utf8` COLLATE=`utf8_unicode_ci`
      ROW_FORMAT=COMPRESSED
    --------------
     
    --------------
    INSERT INTO `assoc` (`auteur`,`livre`) VALUES
      (1, 1),(2, 1), (2, 2), (1, 3), (3, 3)
    --------------
     
    --------------
    select * from assoc
    --------------
     
    +--------+-------+
    | auteur | livre |
    +--------+-------+
    |      1 |     1 |
    |      1 |     3 |
    |      2 |     1 |
    |      2 |     2 |
    |      3 |     3 |
    +--------+-------+
    --------------
    select t2.nom,
           t2.prenom,
               t3.titre
    from       assoc  as t1
    inner join auteur as t2
    on (t2.id = t1.auteur)
     
    inner join livre  as t3
    on (t3.id = t1.livre)
     
    where auteur = 1
    --------------
     
    +------------+--------+-----------+
    | nom        | prenom | titre     |
    +------------+--------+-----------+
    | écrivain 1 | albert | bouquin 1 |
    | écrivain 1 | albert | bouquin 3 |
    +------------+--------+-----------+
    --------------
    select t3.titre,
           t2.nom,
           t2.prenom
    from       assoc  as t1
    inner join auteur as t2
    on (t2.id = t1.auteur)
     
    inner join livre  as t3
    on (t3.id = t1.livre)
     
    where livre = 3
    --------------
     
    +-----------+------------+--------+
    | titre     | nom        | prenom |
    +-----------+------------+--------+
    | bouquin 3 | écrivain 1 | albert |
    | bouquin 3 | écrivain 3 | henri  |
    +-----------+------------+--------+
    --------------
    COMMIT
    --------------
     
    --------------
    SET AUTOCOMMIT = 1
    --------------
     
     
    Appuyez sur une touche pour continuer...
    Pour des questions concernant la conception de vos bases de données, il faut se rendre dans le forum consacré à merise.

    @+
    Si vous êtes de mon aide, vous pouvez cliquer sur .
    Mon site : http://www.jcz.fr

  6. #6
    Membre à l'essai
    Inscrit en
    Mai 2009
    Messages
    6
    Détails du profil
    Informations personnelles :
    Âge : 34

    Informations forums :
    Inscription : Mai 2009
    Messages : 6
    Points : 13
    Points
    13
    Par défaut
    Un tres grand merci a vous deux, #HUGETHUMBUP ^_^

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 50
    Points : 59
    Points
    59
    Par défaut
    Salut...

    Avant de dire :
    JE SUIS NUL !!!
    Il faut se dire (surtout en programmation) , comment vais-je pouvoir coder ce que je souhaite ?

    Car bien entendu, entre le résultat final et notre envie de codifier le tout, il y a un énorme problème. Le tout est de savoir le quel !

    Il faut se poser les bonnes questions :
    - Ce que tu as comme informations provenant des utilisateurs (donc de leur souhait),
    - Ce que tu as as ta disposition (titre, auteur, éditeur, genre, ect.)

    Je commencerai par me créer plusieurs bases de données (c'est une approche qui peu changer selon son point de vue) :
    une table Editeur :
    ID (identifiant unique car il y a un seul éditeur)
    Editeur.

    une table auteur:
    ID,
    Nom,
    Prenom

    une table d'édition (et là c'est marrant) :
    ID , il est toujours là car il est unique...
    IdEditeur,
    IdAuteur,
    ect...

    A chaque champ, il faut penser colonne...

    une table livre (enfin le voila) :
    ID ( :°)
    Titre,
    IdEdition (tient, on diminue les infos... Peut-être plus pratique lors des futures recherches ou requêtes)

    Le tout est de savoir comment organiser ses informations pour une meilleur recherche...

    Bon courage pour la suite...

    PS : je suis seul dans ma démarche et je veux me créer un programme pour les inscriptions d'une association avec le contrôle des paiements. Les informations sont différentes, mais le principe est le même...

    A+

    LOL

    Davy

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

Discussions similaires

  1. recupèrer file d'attente d'impression
    Par magic corp. dans le forum Langage
    Réponses: 2
    Dernier message: 25/09/2002, 14h12
  2. [Choix] Quelles attentes par rapport aux SGBD ?
    Par thierry34 dans le forum Décisions SGBD
    Réponses: 6
    Dernier message: 13/07/2002, 20h08

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