Précédent   Forum des professionnels en informatique > Bases de données > MySQL > Débuter
Débuter Forum d'entraide pour débuter avec MySQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 16/09/2011, 23h50   #1
Membre à l'essai
 
Inscription : septembre 2005
Messages : 121
Détails du profil
Informations forums :
Inscription : septembre 2005
Messages : 121
Points : 24
Points : 24
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 :
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.
bubu92 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/09/2011, 10h17   #2
Modérateur
 
Avatar de CinePhil
 
Homme Philippe Leménager
Ingénieur d'études en informatique
Inscription : août 2006
Messages : 11 029
Détails du profil
Informations personnelles :
Nom : Homme Philippe Leménager
Âge : 48
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 : 11 029
Points : 18 328
Points : 18 328
Envoyer un message via MSN à CinePhil
Citation:
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 de Formation Agronomique.
Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework...
« 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 Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française !
Linuxiens, comptez-vous !
CinePhil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/09/2011, 10h21   #3
Expert Confirmé
 
Avatar de Maljuna Kris
 
Homme Avcxjo MoKo
Retraité
Inscription : novembre 2005
Messages : 2 530
Détails du profil
Informations personnelles :
Nom : Homme Avcxjo MoKo
Âge : 60

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

Informations forums :
Inscription : novembre 2005
Messages : 2 530
Points : 3 523
Points : 3 523
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)
Maljuna Kris est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/09/2011, 10h28   #4
Modérateur
 
Avatar de CinePhil
 
Homme Philippe Leménager
Ingénieur d'études en informatique
Inscription : août 2006
Messages : 11 029
Détails du profil
Informations personnelles :
Nom : Homme Philippe Leménager
Âge : 48
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 : 11 029
Points : 18 328
Points : 18 328
Envoyer un message via MSN à CinePhil
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 de Formation Agronomique.
Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework...
« 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 Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française !
Linuxiens, comptez-vous !
CinePhil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/09/2011, 13h19   #5
Expert Confirmé
 
Avatar de Maljuna Kris
 
Homme Avcxjo MoKo
Retraité
Inscription : novembre 2005
Messages : 2 530
Détails du profil
Informations personnelles :
Nom : Homme Avcxjo MoKo
Âge : 60

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

Informations forums :
Inscription : novembre 2005
Messages : 2 530
Points : 3 523
Points : 3 523
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)
Maljuna Kris est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/09/2011, 16h07   #6
Modérateur
 
Avatar de CinePhil
 
Homme Philippe Leménager
Ingénieur d'études en informatique
Inscription : août 2006
Messages : 11 029
Détails du profil
Informations personnelles :
Nom : Homme Philippe Leménager
Âge : 48
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 : 11 029
Points : 18 328
Points : 18 328
Envoyer un message via MSN à CinePhil
Citation:
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 de Formation Agronomique.
Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework...
« 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 Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française !
Linuxiens, comptez-vous !
CinePhil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/09/2011, 22h36   #7
Membre à l'essai
 
Inscription : septembre 2005
Messages : 121
Détails du profil
Informations forums :
Inscription : septembre 2005
Messages : 121
Points : 24
Points : 24
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.
bubu92 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/09/2011, 07h36   #8
Modérateur
 
Avatar de CinePhil
 
Homme Philippe Leménager
Ingénieur d'études en informatique
Inscription : août 2006
Messages : 11 029
Détails du profil
Informations personnelles :
Nom : Homme Philippe Leménager
Âge : 48
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 : 11 029
Points : 18 328
Points : 18 328
Envoyer un message via MSN à CinePhil
Citation:
Envoyé par bubu92 Voir le message
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.
Le MCD permet de modéliser l'architecture statique des données. La future base de données pourrait être accessible par plusieurs logiciels très différents. Ce ne sont pas les "types" d'un programme développé dans un langage X qui vont déterminer l'architecture des données dans la BDD. En principe, on commence par la modélisation des données avant de développer le programme.

Pour modéliser ta BDD, tu pourras te faire aider dans le forum Schéma.
Il y aussi, en complément du lien vers l'article de SQLPro que j'ai donné dans mon premier message, les livres de Michel Diviné sur la méthode Merise.

Bon courage !
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique.
Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework...
« 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 Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française !
Linuxiens, comptez-vous !
CinePhil est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 02h11.


 
 
 
 
Partenaires

Hébergement Web