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

Schéma Discussion :

[MEA]Plusieurs Auteurs pour un Document


Sujet :

Schéma

  1. #1
    Membre à l'essai
    Inscrit en
    Juin 2005
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 16
    Points : 13
    Points
    13
    Par défaut [MEA]Plusieurs Auteurs pour un Document
    bonjour!

    Suis débutante et je dois faire une base de données d'ouvrages.Celle-ci doit permettre sa consulation et l'insertion de nouvelles notices bibliographiques. Hors j'ai un problème pour caser dans mon schéma entite-association les auteurs des ouvrages:je m'explique:voici d'abord comment je vois ma base:

    DOCUMENT (id_doc,titre, date, editeur, page, vol, cote,ISBN, ISSN,id-TD, id_langue )
    TYPEDOCUMENT(id_TD, intitulé)
    LANGUE(id_langue, intiltulé, code_langue)
    COLLECIFAUTEUR(id_CA, intitulé)
    REDIGE(id_doc, id_CA)

    hors voici mon problème:
    - un ouvrage peut avoir 1 ou n auteurs et un auteur peut écrire 1 ou n ouvrages donc relation n,m. (ce qui est le même cas de figure que pour les collectifs auteurs)Mais je me demande si je crée un table auteur(id_aut, nom, prénom) comment je vais pouvoir gérer les insertions des auteurs. Car actuellement quand on saisit une notice, la personne rentre tout les auteurs à la suite dans un même champ donc comment je fais ici sachant qu'un auteur serait égal à 1case?Et si un auteur a écrit un nouvel ouvrage, comment faire dans ce cas pour qu'il ne soit pas incrémenter dasn la table "auteur" puisu'il existe déjà?
    Est-ce que je dois faire un champs auteur (varchar) dans la table DOCUMENT et la personne saisi tout à la suite là-dedans plutot que de rentrer auteur par auteur pour un même document?

    Il faut savoir que la personne qui saisira ne verra jamais la base MySql puisque les insert doivent se faire par un formulaire php d'où mon problème!!

    Je sais pas si je suis clair mais merci de vos conseils à l'avance!![/i]

  2. #2
    Membre éclairé Avatar de BizuR
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    688
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 688
    Points : 757
    Points
    757
    Par défaut
    pour les multi auteurs, tu peux tjs demander un petit formatage du champ ou la personne rentre tous les auteurs ... (separations par une virgule par exemple) ... puis l'idée, pour éviter les iterations dues a des fautes d'orthographe serait de prendre chaque auteur, le comparer a ceux présents dans la base (limite, tu utilises un petit algorithme d'assimilation des mots ressemblants fortement) et deux cas se presentent :
    1- aucun n'existe alors tu l'ajoutes a tra base auteur et le relie au livre
    2- il existe une ou plusieurs fois, tu proposes les auteurs possibles et la personne doit choisir entre l'un deux ou préciser l'auteur (le prénom en plus par exemple)

    après, ce ne sont que des conseils et il y a peut etre mieux, mais je pense que c'est une bonne solution

    En tout cas bonne chance pour cette base
    See you, space cowboy... and if you're satisfied, click on

  3. #3
    Membre à l'essai
    Inscrit en
    Juin 2005
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 16
    Points : 13
    Points
    13
    Par défaut
    >>merci pour les conseils Bizur!! J'en ai parlé avec mon commanditaire et ça ne le dérange pas de pas avoir de tables auteurs, car comme ils changent tout le temps, il m'a fait comprendre que ça servait un peu à rien...J'ai donc pensé que je pourrai les sélectionner dans ma requete avec un: `au`like "%$requete%" si je les mets tous à la suite dans un champ `au` dans la table DOCUMENT.
    Me pose aussi la question suivante, pour la table TYPEDOC, est-ce que je ne pourrai pas plutôt faire un champ Typedoc en liste fermée avec un ENUM dans la table DOCUMENT ?

    Qu'est-ce qui est le mieux?

    Si je fais ça comme ça, je ne vais avoir qu'une énorme table DOCUMENT, et une pour les langues, voir les types de doc et ça ne parait pas beaucoup....

    Merci d'avance à tous ceux qui voudront bien m'aider!!

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    572
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Haute Vienne (Limousin)

    Informations forums :
    Inscription : Juin 2005
    Messages : 572
    Points : 716
    Points
    716
    Par défaut
    A mon avis ca dépend de l'utilisation que tu en fais.
    S'il n'existe que quelques types de documents qui reviennent tout le temps, alors il vaut mieux créer une table typedoc afin d'éviter de répéter les informations. Maintenant si le type du document change selon chaque document ou preque, il est peut etre préférable d'avoir un champ typedoc dans ta table document.
    J'espere être assez clair
    Tout pas mieux que tout le monde : évitez les questions techniques en mp sinon à quoi bon poster sur un forum ?

    Petite citation : "Le sage cherche la vérité, l'imbécile l'a déjà trouvée"

  5. #5
    Membre à l'essai
    Inscrit en
    Juin 2005
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 16
    Points : 13
    Points
    13
    Par défaut
    S'il n'existe que quelques types de documents qui reviennent tout le temps, alors il vaut mieux créer une table typedoc afin d'éviter de répéter les informations. Maintenant si le type du document change selon chaque document ou preque, il est peut etre préférable d'avoir un champ typedoc dans ta table document.
    ben j'ai toujours les mêmes types de doc, moins d'une 10aine. Donc pour ça c'est mieux de faire une table type de doc? ok, merci du conseil!!!

  6. #6
    Membre éclairé Avatar de BizuR
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    688
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 688
    Points : 757
    Points
    757
    Par défaut
    Oui, ca parait plutot plus efficace de créer une table type_doc ... ne serait ce que pour éviter kles erreurs de recopie dans les champs de ta table doc si jamais tu avais mis un champ ... (d'ou le principe de non redondances des informations)

    Sinon, pour la table auteur, je suis d'accord avec toi pour le fait de ne pas faire d'isolation de chaque auteur mais le probleme des ecritures differentes va arriver

    exemple :
    J.R.R. Tolkien a ecrit le livre A
    J.R.R. Tolkienn a ecrit le livre B
    JRR Tolkien a ecrit le livre C

    Malheureuse fautes de frappe qui vont engendrer une recherche erronée pour J.R.R Tolkien ?!? C'est uniquement pour cela que je proposais mon exemple .... mais si ce type de probleme n'est pas grave, alors aucun soucis évidemment
    See you, space cowboy... and if you're satisfied, click on

  7. #7
    Membre à l'essai
    Inscrit en
    Juin 2005
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 16
    Points : 13
    Points
    13
    Par défaut
    >>merci tout le monde pour les conseils!!!

    si je vous suis bien, ma base ressemblerai à ça:
    version 1:
    DOCUMENT (id_doc,titre, auteur, date, editeur, page, vol, cote,ISBN, ISSN,id-TD, id_langue )
    TYPEDOCUMENT(id_TD, intitulé)
    LANGUE(id_langue, intiltulé, code_langue)
    COLLECIFAUTEUR(id_CA, intitulé)
    REDIGE(id_doc, id_CA)

    ou ça :
    version 2:
    DOCUMENT (id_doc,titre, auteur,c,ollectif auteur date, editeur, page, vol, cote,ISBN, ISSN,id-TD, id_langue )
    TYPEDOCUMENT(id_TD, intitulé)
    LANGUE(id_langue, intiltulé, code_langue)

    (j'ai mis en gras, ce que j'ai changé) et dans la version 2, ben j'ai pris le même principe que pour les auteurs.

    Quelle version vous parait la plus correct??

    (je suis chiante avec toutes ces questions!!mais merci de vos réponses!!)

  8. #8
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    572
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Haute Vienne (Limousin)

    Informations forums :
    Inscription : Juin 2005
    Messages : 572
    Points : 716
    Points
    716
    Par défaut
    Toujours le meme probleme :
    Si tu as seulement quelques collectifs d'auteur, il vaut mieux garder la table collectifAuteurs et mettre une clé étrangère dans ta table document.
    Si le collectif change presque à chaque fois, peut être envisager un champ collectifAuteur dans ta table document.
    Mais comme l'a dit bizur, si tu envisages de faire des recherches sur un auteur ou sur un collectif, tu risques d'avoir des problemes s'ils apparaissent sous forme de champ dans ta table document en raison du manque de formalisme.
    Tout pas mieux que tout le monde : évitez les questions techniques en mp sinon à quoi bon poster sur un forum ?

    Petite citation : "Le sage cherche la vérité, l'imbécile l'a déjà trouvée"

  9. #9
    Membre à l'essai
    Inscrit en
    Juin 2005
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 16
    Points : 13
    Points
    13
    Par défaut
    oui c'est vrai mais mais il n'y aura qu'une personne qui entrera les notices, et cette personne est habituée à rentrer les infos dans les champs de façon formatée. Je vais reprendre le même formatage (comme pour les auteurs par ex) dans cette nouvelle base. C'est vrai que la solution de bizur (les séparateur, puis comparer puis insérer) est très bien mais moi je suis pas développeuse!!!Je débute en php my-sql donc je sais pas faire des choses comme ça!!

  10. #10
    Membre éclairé Avatar de BizuR
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    688
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 688
    Points : 757
    Points
    757
    Par défaut
    la partie developpement n'est pas si difficile ... évidemment, la recherche de mots similaires reste un algorithme avancé ... c'est pourquoi tu peux le trouver deja fait sur le net ... (demande sur le forum Algorithmes) , après restera peut être à le convertir en Php/MySQL ... le reste reste de la consultation de la base de données...

    Pour découper une chaine de caractères en Php ... je ne connais pas mais si ca reprend les concept du C ... il doit bien exister une fonction split() qui peut séparer une chaine en plusieurs selon un caractère ...

    Ca demande un petit peu de temps, mais comme tout existe deja, tu n'as pas besoin d'avoir des competences de developpement avancees, ne t'inquietes pas
    See you, space cowboy... and if you're satisfied, click on

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

Discussions similaires

  1. Référencer un document ayant plusieurs auteurs
    Par hnouna2007 dans le forum Bibliographies - Index - Glossaires
    Réponses: 2
    Dernier message: 09/10/2009, 11h42
  2. Plusieurs auteurs pour un livre
    Par Sandro Munda dans le forum Langage SQL
    Réponses: 6
    Dernier message: 03/03/2008, 10h42
  3. plusieurs styles pour un seul document
    Par philippe281281 dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 02/10/2006, 18h45
  4. [MFC] Deux vues pour un document
    Par Lark dans le forum MFC
    Réponses: 6
    Dernier message: 15/09/2004, 11h44
  5. Réponses: 2
    Dernier message: 05/07/2004, 18h50

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