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 :

Udt vers vbmysql


Sujet :

MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    181
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 181
    Par défaut Udt vers vbmysql
    Bonjour a tous,

    je programme sous VB6 (oui je sais...), et j'aurais bien aimé
    stocker ces données dans une base MySql, mais j'avoue ne
    pas savoir comment m'y prendre pour créer la base. A vrai dire
    je n'suis meme pas sur que ce soit possible. Voici les types UDT
    que j'utilise :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    Type Adresse
        Numero As Integer
        Rue As String * 100
    End Type
     
    Type Personne
        Nom As String * 20
        Prenom As String * 30
        Age As Integer
        Adresses() As Adresse
    End Type
    sachant que chaque personne peut avoir un nombre d'adresses
    variable..
    Mon probleme n'est pas dans la création de la base elle-meme,
    mais en les champs qui la compose.

  2. #2
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 818
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 818
    Billets dans le blog
    14
    Par défaut
    chaque personne peut avoir un nombre d'adresses
    variable
    Tu as donc le MCD (Méthode Merise) suivant :
    personne -0,n----avoir----1,1- adresse

    Ce qui m'étonne un peut dans ton adresse est qu'il n'y a pas de ville ni de code postal mais bon...

    Du MCD ci-dessus, on en tire les tables suivantes, en tenant compte de tes types :
    personne (prs_id, prs_nom, prs_prenom, prs_age)
    adresse (adr_id, adr_id_personne, adr_numero, adr_rue)

    prs_id et adr_id seront des identifiants de type entier et auto-incrémentés.
    adr_id_personne est une clé étrangère qui fait référence à l'identifiant de la personne prs_id.

    Plutôt qu'un âge, on stocke en principe en BDD une date de naissance et le programme utilisateur calcule l'âge, ce qui évite de devoir mettre à jour l'âge tous les ans.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  3. #3
    Membre Expert
    Avatar de Maljuna Kris
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2005
    Messages
    2 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 613
    Par défaut
    Saluton,
    Si chaque personne peut avoir plusieurs adresses, il va te falloir une table pivot, ou d'interface, entre la table personne et la table adresse, laquelle table pivot ne contiendra, en clé unique composée, que les identifiants des deux autres tables déclarés clés étrangères.
    Par ailleurs, le type adresse me semble bien pauvre, pas de ville, pas de code postal, pas de pays ...
    Kie lumo eksistas ankaŭ ombro troviĝas. L.L. Zamenhof
    articles : Comment émuler un tableau croisé [quasi] dynamique
    et : Une énigme mathématique résolue avec MySQL
    recommande l'utilisation de PDO (PHP5 Data Objects)

  4. #4
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 818
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 818
    Billets dans le blog
    14
    Par défaut
    On peut en effet considérer qu'une adresse peut être celle de plusieurs personnes, auquel cas on a le MCD suivant :
    personne -0,n----avoir----1,n- adresse

    Ce qui entraîne la création des tables suivantes :
    personne (prs_id, prs_nom, prs_prenom, prs_age)
    adresse (adr_id, adr_numero, adr_rue)
    prs_avoir_adr (paa_id_personne, paa_id_adresse)
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  5. #5
    Membre Expert
    Avatar de Maljuna Kris
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2005
    Messages
    2 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 613
    Par défaut
    Citation Envoyé par CinePhil Voir le message
    On peut en effet considérer qu'une adresse peut être celle de plusieurs personnes, auquel cas on a le MCD suivant :
    personne -0,n----avoir----1,n- adresse
    Ce n'est pas ce que j'ai dit, je n'ai fait que reprendre le cahier des charges de
    Citation Envoyé par bubu92 Voir le message
    sachant que chaque personne peut avoir un nombre d'adresses
    variable..
    Mais ça peut également servir dans l'autre sens.
    Kie lumo eksistas ankaŭ ombro troviĝas. L.L. Zamenhof
    articles : Comment émuler un tableau croisé [quasi] dynamique
    et : Une énigme mathématique résolue avec MySQL
    recommande l'utilisation de PDO (PHP5 Data Objects)

  6. #6
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 818
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 818
    Billets dans le blog
    14
    Par défaut
    Si chaque personne peut avoir plusieurs adresses, il va te falloir une table pivot, ou d'interface, entre la table personne et la table adresse, laquelle table pivot ne contiendra, en clé unique composée, que les identifiants des deux autres tables déclarés clés étrangères.
    Mon premier MCD n'impliquait pas de "table pivot", c'est pour ça que j'ai posté le second MCD qui correspond à ton message et qui est une autre possibilité de modéliser les adresses des personnes.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    181
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 181
    Par défaut
    Merci a tous pour toutes ces reponses

    j'ai bien tout compris et je pense pouvoir clore ce topic. Juste
    une precision concernant mes types, c'etait juste des exemple
    afin de comprendre comment ranger des tableaux de données
    indéfini en taille, dans une base. Mes types sont bien plus
    complexes, j'ai d'ailleurs bien peur de devoir faire un grand
    nombre de tables...
    Il me reste juste a me familiariser avec cette notion que vous
    appellez MCD, et qui, si j'ai bien compris, permet a partir d'un
    type, de définir la structure de la base.

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

Discussions similaires

  1. A ceux qui ont migré de VB6 vers VB.Net
    Par Fox dans le forum VB 6 et antérieur
    Réponses: 81
    Dernier message: 21/05/2008, 14h56
  2. Socket:Envoyer du texte d'un serveur vers tout les clients
    Par cedm78 dans le forum Web & réseau
    Réponses: 7
    Dernier message: 01/08/2002, 16h40
  3. [Kylix] De delphi vers Kylix : Et les HLP ?
    Par Beuz dans le forum EDI
    Réponses: 1
    Dernier message: 11/06/2002, 11h38
  4. Réponses: 2
    Dernier message: 30/05/2002, 10h19
  5. Réponses: 1
    Dernier message: 13/05/2002, 09h19

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