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

Requêtes MySQL Discussion :

Conseils création table 'sources'


Sujet :

Requêtes MySQL

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    901
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 901
    Points : 79
    Points
    79
    Par défaut Conseils création table 'sources'
    Bonjour tout le monde et j'espere que vous avez passe un bon week end

    je seche depuis qlq jours sur la creation d'une bdd. il s'agit d'une base de donnees documentaire.
    j'ai jusqu'a present cree ma table 'articles' :

    articles :
    id | titre_fr | titre_en | resume_fr | resume_en | langue_orig | auteur
    ------------------------------------------------------------------

    et puisqu'il peut y avoir des traductions pour un article j'ai cree 'articles_liés'
    un article traduit par exemple en 'italien', n'aura pas de resume en italien, masi on le reference. en gros, les resumes sont toujorus en anglais et francais!

    articles_liés :
    id | id_article | titre | langue | source | prix | pages
    ------------------------------------------------------------------


    mais mon probleme et les sources, j'ai 3 types de sources : revue, comptes rendus ou ouvrage
    entre ces 3 types de sources, j'ai que qlq champs en commun.

    1- faut il creer 1 seule table avec tous les champs pôur les 3 types de sources ou plutot creer 3 tables ???

    2- comment gerer les 'volume', 'numero' des revues??

    Merci beacoup de votre aide.
    Reda

  2. #2
    Expert confirmé

    Homme Profil pro
    SDE
    Inscrit en
    Août 2007
    Messages
    2 013
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : SDE

    Informations forums :
    Inscription : Août 2007
    Messages : 2 013
    Points : 4 327
    Points
    4 327
    Par défaut
    Bonjour,

    Il me semble pour pertinent de regrouper les champs commun dans une entité mère et de pratique l'héritage.

    En revanche, même si pour ton domaine de gestion ça semble convenir, il me semble que ta façon de gérer les traductions est quelque peu maladroite.

    Si tu détail un peut plus tes attentes précisément, et avec un éventuel MCD actuel, on pourra certainement t'aider a améliorer tout ça.

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    901
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 901
    Points : 79
    Points
    79
    Par défaut
    Merci encore une fois Kazou d'avoir repondu.

    concernant ma table article, je t'explique en qlq mots et exemples mon cas.
    - lorsque j'ai qu'un seul article en 'fr', son resume et titre sont traduits en 'en'
    - lorsque j'ai qu'un seul article en 'en', son titre est traduit en francais, et son resume PEUT ETRE traduit egalement en 'fr'
    - lorsque j'ai qu'un seul article non 'fr' et non 'en', son titre est traduit en 'fr' et 'en' et son resume est traduit en 'en' et PEUT ETRE traduit en 'fr'
    - lorsque j'ai des traductions d'articles deja existant, ils s'inserent ds la table fille (articles_lies)

    articles :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    id | titre_fr | titre_en | resume_fr | resume_en | langue_orig | auteur 
    --------------------------------------------------------------------
    1   Bonjour1   Hello1       Blabla fr      Blabla en            fr            14
    2   Bonjour2   Hello2       Blabla fr      Blabla en            en           17
    3   Bonjour3   Hello3       NULL          Blabla en            es           11

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    id_article | titre | langue | source | prix | pages 
    ------------------------------------------------
    1              NULL     fr          14       12      20
    1              Hola      es         20       15      25
    3              NULL     en         16        23     54

    pour la source, je ne sais vrmt pas comment m'y prendre

  4. #4
    Expert confirmé

    Homme Profil pro
    SDE
    Inscrit en
    Août 2007
    Messages
    2 013
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : SDE

    Informations forums :
    Inscription : Août 2007
    Messages : 2 013
    Points : 4 327
    Points
    4 327
    Par défaut
    Pour gérer la traduction des articles je te propose une solution je pense plus élégante (ci joint).

    Pour les sources, je ne comprend pas le but.
    Tu dois établir une liste de sources qui ont été nécessaire a la réfaction d'un article c'est ça ?
    Images attachées Images attachées  

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    901
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 901
    Points : 79
    Points
    79
    Par défaut
    Merci, je vais etudier de plus pres ton MCD.

    et concernant la source, qu'est ce que tu me proposerai??

  6. #6
    Expert confirmé

    Homme Profil pro
    SDE
    Inscrit en
    Août 2007
    Messages
    2 013
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : SDE

    Informations forums :
    Inscription : Août 2007
    Messages : 2 013
    Points : 4 327
    Points
    4 327
    Par défaut
    mais mon probleme et les sources, j'ai 3 types de sources : revue, comptes rendus ou ouvrage
    entre ces 3 types de sources, j'ai que qlq champs en commun.
    Pour les sources détail un peut plus les possibilités, les champs spécifiques, etc ... pourra certainement trouver une solution

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    901
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 901
    Points : 79
    Points
    79
    Par défaut
    comme j'ai dit plus tot, un article a 3 type de sources : comptes rendus, ouvrages et revues

    voici ce que les differentes sources peuvent avoir comme champs

    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
    revues :
    -------------------------------------------------------
    id
    nom original #si une revue etrangere
    nom
    nom abrege  
    disponibilite
    pays
    contrat #si on a le droit de vendre les articles tires de cette revue 
    isbn  
    issn  
     
     
    ouvrages :
    -------------------------------
    id  
    id_catalogue  #id de cet ouvrage s'il est dispo en vente ds notre catalogue
    disponibilite  #champ non utile si 'id_catalogue' est renseigne
    pays #champ non utile si 'id_catalogue' est renseigne
    date_publi  #champ non utile si 'id_catalogue' est renseigne
    cote  
    inventaire 
    ancien_classement  
    code
    isbn  #champ non utile si 'id_catalogue' est renseigne
    issn
     
     
    comptes rendus :
    id  
    id_conference  # id de la conference si elle existe ds note base conferences
    id_catalogue  #id du compte rendu s'il est dispo en vente ds notre catalogue
    nom_original 
    nom_en  #champ non utile si 'id_conference' est renseigne
    nom_fr  #champ non utile si 'id_conference' est renseigne
    nom_abrege  
    num_congres  
    ville  #champ non utile si 'id_conference' est renseigne
    pays  #champ non utile si 'id_conference' est renseigne
    dt_debut  #champ non utile si 'id_conference' est renseigne
    dt_fin  #champ non utile si 'id_conference' est renseigne
    disponibilite  #champ non utile si 'id_conference' est renseigne
    contrat  
    cote  
    inventaire  
    ancien_classement

  8. #8
    Expert confirmé

    Homme Profil pro
    SDE
    Inscrit en
    Août 2007
    Messages
    2 013
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : SDE

    Informations forums :
    Inscription : Août 2007
    Messages : 2 013
    Points : 4 327
    Points
    4 327
    Par défaut
    C'est en effet asses difficile de classer ces informations.
    Une solution asses lourde permettant de séparer au mieux toutes des informations serait d'avoir une table par propriété et de les lier selon les besoin sur telle ou telle entité, on y accéderais au travers de vues pour éviter la lourdeurs du nombre de jointures.

    Je te déconseille cependant ce type de conception pour ton projet car son ampleur ne le justifie pas.

    Ci-joint un MCD qui peut être exploité je pense, l'héritage est très utile au niveau du contrôle au niveau des jointures, mais les propriété sont difficilement classables.
    Images attachées Images attachées  

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    901
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 901
    Points : 79
    Points
    79
    Par défaut
    ca fait longtemps que g pas fait d'MCD, ca te derange de me donner plutot un MLD qui se rapproche le plus a la conception des bdd???

    en parlant de MCD, celui que tu m'as donne tt a l'heure pour les articles, il est un peu faux:
    un article peut avoir plusieurs traduction mais une traduction n'engendre pas un resume ds la langue traduit.
    c'est a dire :
    - 'titre_en' et 'titre_fr' sont TOUJOURS remplis quelque soit la langue de l'article
    - 'titre' de la table 'articles_lies' est rempli si la traduction est ds une autre langue que 'fr' et 'en'
    - 'resume_en' et 'resume_fr' sont pas obligatoirement remplis, et s'il sont remplis, c'est UNIQUEMENT en 'en' et 'fr'

    j'espere avoir ete claire!!

  10. #10
    Expert confirmé

    Homme Profil pro
    SDE
    Inscrit en
    Août 2007
    Messages
    2 013
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : SDE

    Informations forums :
    Inscription : Août 2007
    Messages : 2 013
    Points : 4 327
    Points
    4 327
    Par défaut
    Citation Envoyé par redah75 Voir le message
    ca te derange de me donner plutot un MLD qui se rapproche le plus a la conception des bdd???
    Il n'y a pas mieux qu'un MCD pour la conception, au passage au MLD énormément d'information disparaissent.

    Citation Envoyé par redah75 Voir le message
    en parlant de MCD, celui que tu m'as donne tt a l'heure pour les articles, il est un peu faut:
    un article peut avoir plusieurs traduction mais une traduction n'engendre pas un resume ds la langue traduit.
    c'est a dire :
    - 'titre_en' et 'titre_fr' sont TOUJOURS remplis
    - 'titre' de la table 'articles_lies' est rempli si la traduction est ds une autre langue que 'fr' et 'en'
    - 'resume_en' et 'resume_fr' sont pas obligatoirement remplis, et s'il sont remplis, c'est UNIQUEMENT en 'en' et 'fr'
    Oui vu comme ça .
    C'est difficile de s'approprier un domaine de gestion donc je ne fait que des supposition sensé te montrer des voies possible de résolution de ton problème, après c'est vrai, qu'on peut se tromper

  11. #11
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    901
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 901
    Points : 79
    Points
    79
    Par défaut
    c'est vrai!!
    justement, la structure que je t'ai montre au debut me semble pas mal, elle couvre tous les cas et ne represente AUCUNE redondance!!

    concernant la source, j'avoue que c'est une vraie catastrophe, je ne sais vraiment pas comment m'y prendre, tu ferais quoi a ma place?

    je profite de ce post pour poser 2 legeres petites question, c'est au sujet des dates :
    1- pour gerer la date de debut et de fin, creer deux champs "date_debut" et "date_fin" est la seule solution?
    2- si je veux stocker une date qui contient que le mois et l'annee, quelle est la meilleure facon de le faire?

  12. #12
    Expert confirmé

    Homme Profil pro
    SDE
    Inscrit en
    Août 2007
    Messages
    2 013
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : SDE

    Informations forums :
    Inscription : Août 2007
    Messages : 2 013
    Points : 4 327
    Points
    4 327
    Par défaut
    Citation Envoyé par redah75 Voir le message
    1- pour gerer la date de debut et de fin, creer deux champs "date_debut" et "date_fin" est la seule solution?
    c'est la bonne méthode oui
    Citation Envoyé par redah75 Voir le message
    2- si je veux stocker une date qui contient que le mois et l'annee, quelle est la meilleure facon de le faire?
    Il faut utiliser un Date, on laissera je jour toujours a 00

  13. #13
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    901
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 901
    Points : 79
    Points
    79
    Par défaut
    Citation Envoyé par kazou Voir le message
    c'est la bonne méthode oui

    Il faut utiliser un Date, on laissera je jour toujours a 00
    c'est ce que je me disais, mais j'ai entendu parler d'une ventuelle conversion en binaire, ca te dit qlq chose? c'est a dire jour * l'annee * 12 ou qlq chose du genre!!

    pour les sources, je pense qu'il faudrai d'abord que je liste TOUS les champs possibles pour pouvoir resoudre ce probleme!!

    et en parlant de source, faut il creer une table speciale concernant les numero et volume de revues? ou il suffit juste de le precider dans chaque fiche d'article??
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    table articles :
    id | titre_fr | ... | numero  |  volume 
    -------------------------------------------
    et puis faire un SELECT DISTINCT pour recuperer tous les num et vol ???

    Merci merci mille fois

  14. #14
    Expert confirmé

    Homme Profil pro
    SDE
    Inscrit en
    Août 2007
    Messages
    2 013
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : SDE

    Informations forums :
    Inscription : Août 2007
    Messages : 2 013
    Points : 4 327
    Points
    4 327
    Par défaut
    Bonjour,

    MERISE conseille de séparer au maximum les informations, il n'est donc jamais un problème d'avoir une tablé dédié a un certain type d'information qui sera lié a d'autres.

Discussions similaires

  1. [AC-2007] conseil création de tables
    Par manusp dans le forum Modélisation
    Réponses: 32
    Dernier message: 06/04/2011, 17h58
  2. Création table et relations
    Par ptitdragon_eric dans le forum Langage SQL
    Réponses: 3
    Dernier message: 10/09/2005, 13h37
  3. Conseil utilisation table temporaire
    Par celine31 dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 23/05/2005, 15h23
  4. [noob]création table
    Par ggnore dans le forum Langage SQL
    Réponses: 3
    Dernier message: 20/01/2005, 11h18
  5. création table
    Par lepierre dans le forum Décisions SGBD
    Réponses: 1
    Dernier message: 17/09/2004, 11h32

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