Salut à tous !
Comme d'habitude, merci à tous ceux qui font vivre ce forum
Je débute en gestion de base de données, et vais créer une base de données bibliographiques.
Je pense que mon problème est un cas d'école dans la gestion de base données pour ceux qui s'y connaissent.
J'ai fait mon modèle entité-relation, et suis plutôt content car je retombe, dans les grandes lignes, sur ce modèle disponible sur le net :
http://www.vn.refer.org/vietnam/theses/mjbauer/MCD.gif
avec notamment des tables document et mot-clé séparées.
Voici grosso merdo le code que j'utilise pour ces deux tables :
J'ai cependant un problème pour créer la table relationnelle (dites moi svp si ce terme n'est pas adapté), et notamment dans la gestion de la cardinalité : (1,n) article peut avoir (0,n) mots-clé.Code:CREATE TABLE IF NOT EXISTS article ( id INT(10) NOT NULL, pubyear INT(4), issn INT(8), FOREIGN KEY (issn) REFERENCES journal(issn), PRIMARY KEY (id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; CREATE TABLE IF NOT EXISTS keyword ( value CHAR(20) NOT NULL, PRIMARY KEY (value) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Quel code utiliseriez-vous pour créer cette table ?
D'instinct je partirai sur ça :
En fait j'ai du mal à me représenter la forme de la cardinalité des données.Code:CREATE TABLE has_keyword ( id INT(10), value CHAR(20), FOREIGN KEY (id) REFERENCES article(id), FOREIGN KEY (value) REFERENCES keyword(value), PRIMARY KEY (id, value) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Je suis habitué à la combinaison csv + R pour les données, et pour moi, si un article a plusieurs mots-clé ce sera du format long :
id,value
article1,biologie moléculaire
article1,immunologie
article1,lupus
article2,informatique thérique
article2,théorie des langages
article2,théorie des graphes
article2,théorie de la complexité
...
Pourriez-vous m'éclairer s'il vous plaît ?
Merci beaucoup !
-----