Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 18 sur 18
  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    novembre 2007
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : novembre 2007
    Messages : 115
    Points : 59
    Points
    59

    Par défaut Plusieurs potentiels prénoms

    Bonjour,

    On est sur un service où on doit stocker les noms et tous les prénoms de nos clients.
    Nos développeurs fournissent ce genre de table

    ID (int)
    Nom (varchar 50)
    Prenom_1 (varchar 50)
    Prenom_2(varchar 50)
    Prenom_3(varchar 50)
    Prenom_4(varchar 50)
    Prenom_5(varchar 50)

    En sachant qu'on a tous un prénom et que +- 70% des personnes ont un 2ème prénom et que moins de 50% ont un 3ème prénom, et je ne parle même pas des 4ème et 5ème prénom.

    Je penserai plus vers une structure à 2 tables comme ça:

    Client
    ID (INT)
    Nom (varchar 50)
    Prenom (varchar 50)

    Client_prénom
    ID (int)
    Prénom (varchar 50)
    Ordre (varchar 50)

    Selon vous, quelle serait la meilleure solution ?

    Merci.

    ps: on tourne sur MSSQL 2008 R2

  2. #2
    Modérateur
    Avatar de CinePhil
    Homme Profil pro Philippe Leménager
    Ingénieur d'études en informatique
    Inscrit en
    août 2006
    Messages
    13 820
    Détails du profil
    Informations personnelles :
    Nom : Homme Philippe Leménager
    Âge : 51
    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 : 13 820
    Points : 24 812
    Points
    24 812

    Par défaut

    Effectivement, la seconde structure est meilleure. Et quitte à séparer les prénoms, autant séparer aussi le premier prénom !
    Surtout que tes clients ne sont (ou ne seront) peut-être pas tous des personnes physiques avec prénom mais aussi des personnes morales sans prénom !

    Au fait, ça existe des prénoms de 50 caractères ? Un VARCHAR(30) ne serait-il pas suffisant ?

    Quant à l'ordre, un TINYINT serait plus approprié !
    Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique. Autoentrepreneur.
    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 la suite Linux Mageïa !

  3. #3
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro Frédéric BROUARD
    Expert SGBDR & SQL
    Inscrit en
    mai 2002
    Messages
    13 563
    Détails du profil
    Informations personnelles :
    Nom : Homme Frédéric BROUARD
    Localisation : France

    Informations professionnelles :
    Activité : Expert SGBDR & SQL
    Secteur : Conseil

    Informations forums :
    Inscription : mai 2002
    Messages : 13 563
    Points : 30 071
    Points
    30 071

    Par défaut

    Citation Envoyé par mikaeru Voir le message
    Bonjour,

    On est sur un service où on doit stocker les noms et tous les prénoms de nos clients.
    Nos développeurs fournissent ce genre de table

    ID (int)
    Nom (varchar 50)
    Prenom_1 (varchar 50)
    Prenom_2(varchar 50)
    Prenom_3(varchar 50)
    Prenom_4(varchar 50)
    Prenom_5(varchar 50)

    En sachant qu'on a tous un prénom et que +- 70% des personnes ont un 2ème prénom et que moins de 50% ont un 3ème prénom, et je ne parle même pas des 4ème et 5ème prénom.

    Je penserai plus vers une structure à 2 tables comme ça:

    Client
    ID (INT)
    Nom (varchar 50)
    Prenom (varchar 50)

    Client_prénom
    ID (int)
    Prénom (varchar 50)
    Ordre (varchar 50)

    Selon vous, quelle serait la meilleure solution ?

    Merci.

    ps: on tourne sur MSSQL 2008 R2
    Ni l'une ni l'autre....

    En effet vous aurez de la redondance !

    la solution je l'ai donné dans le modèle ici :
    http://blog.developpez.com/exercices...-de-personnes/

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Blog SQL, SQL Server, modélisation données : http://blog.developpez.com/sqlpro
    http://www.sqlspot.com : modélisation, conseils, audit, optimisation, formation
    * * * * * Enseignant CNAM PACA - ISEN Toulon - CESI Aix en Provence * * * * *

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    novembre 2007
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : novembre 2007
    Messages : 115
    Points : 59
    Points
    59

    Par défaut

    Bonjour,
    Merci pour votre réponse.
    En effet, du tinyint est plus approprié pour l'ordre, petite erreur de clavier

    Sinon cette table ne s’occupera que de personne physique, et que le 1er prénom sera souvent affiché.

    Et merci pour le lien, je lirai en cours de journée, car bien que cela me sera utile, et que j'en suis reconnaissant, mais ce qui y est décrit dépasse « un peu » mes besoins.

    Si on parle du coté logique de la chose j’opterai directement pour une table à part, mais entre les best practice et ce qui est optimal il y a souvent une marge en READ et WRITE.

    Sinon qu’elle serait selon vous de bon argument pour favorisé la table ‘prénom’

    +
    Normalisation
    Espace gagné


    -
    Un chouia plus compliqué pour les inserts
    Prise de tête avec les développeurs pour leur faire changer d’avis (^^)


    Encore merci pour votre temps

  5. #5
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro Frédéric BROUARD
    Expert SGBDR & SQL
    Inscrit en
    mai 2002
    Messages
    13 563
    Détails du profil
    Informations personnelles :
    Nom : Homme Frédéric BROUARD
    Localisation : France

    Informations professionnelles :
    Activité : Expert SGBDR & SQL
    Secteur : Conseil

    Informations forums :
    Inscription : mai 2002
    Messages : 13 563
    Points : 30 071
    Points
    30 071

    Par défaut

    Il n'y a que des avantages et aucun inconvénient à utiliser ce modèle, tant sur le plan de la facilité de requêtage que sur les performances.

    mais pour le comprendre, il faut implémenter le MED (Modèle Externe de Données) c'est à dire les vues, ce qu'hélas peu de développeurs font.

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Blog SQL, SQL Server, modélisation données : http://blog.developpez.com/sqlpro
    http://www.sqlspot.com : modélisation, conseils, audit, optimisation, formation
    * * * * * Enseignant CNAM PACA - ISEN Toulon - CESI Aix en Provence * * * * *

  6. #6
    Modérateur
    Avatar de CinePhil
    Homme Profil pro Philippe Leménager
    Ingénieur d'études en informatique
    Inscrit en
    août 2006
    Messages
    13 820
    Détails du profil
    Informations personnelles :
    Nom : Homme Philippe Leménager
    Âge : 51
    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 : 13 820
    Points : 24 812
    Points
    24 812

    Par défaut

    Citation Envoyé par SQLpro Voir le message
    il faut implémenter le MED (Modèle Externe de Données)
    Tout comme il y a le Modèle Organisationnel des Traitements (MOT), ne dit-on pas plutôt Modèle Organisationnel des Données (MOD) en méthode Merise ?

    Et pendant que j'y suis :
    Prise de tête avec les développeurs pour leur faire changer d’avis (^^)
    Ce n'est pas au développeur de l'application d'imposer la structure de la base de données !
    Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique. Autoentrepreneur.
    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 la suite Linux Mageïa !

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    novembre 2007
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : novembre 2007
    Messages : 115
    Points : 59
    Points
    59

    Par défaut

    Citation Envoyé par CinePhil Voir le message
    Ce n'est pas au développeur de l'application d'imposer la structure de la base de données !
    ^^, je sais mais je suis arrivé en cours de projets donc je doit défaire une partie qui est déjà faite.
    Maintenant autre question bête.

    Pour faire un select (ou crée là vue)
    je ferai :
    Code :
    1
    2
    3
    4
    select nom, prénom 
    from t_nom n 
    join t_prenom p on n.id=p.id_n 
    order by [ordre]
    et les dévlopeurs s'amuse a gérer les prénoms

    ou je créerai une requete du genre

    Code :
    1
    2
    select nom, (sub select ) prenom_1 ,(sub select ) prenom_2 ,....
    from t_nom n
    Merci encore pour vos lumières.

  8. #8
    Modérateur
    Avatar de CinePhil
    Homme Profil pro Philippe Leménager
    Ingénieur d'études en informatique
    Inscrit en
    août 2006
    Messages
    13 820
    Détails du profil
    Informations personnelles :
    Nom : Homme Philippe Leménager
    Âge : 51
    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 : 13 820
    Points : 24 812
    Points
    24 812

    Par défaut

    Tu crées une vue avec la première requête. Enfin mieux adaptée à ton cas réel.

    La présentation des données avec un prénom par colonne ou à la suite séparés par des virgules est du ressort de l'application donc du développeur.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique. Autoentrepreneur.
    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 la suite Linux Mageïa !

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    novembre 2007
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : novembre 2007
    Messages : 115
    Points : 59
    Points
    59

    Par défaut

    Mais dans le cas on la query retourne + de 10 collones
    on aurait quelque chose comme


    Dupont[]Marc[/][]Col1[/][]col2[/]...
    Dupont[]Mika[/][]Col1[/][]col2[/]...
    Dupont[]Luc[/][]Col1[/][]col2[/]...
    Dupont[]Pierre[/][]Col1[/][]col2[/]...



    Est ce vraiment plus performant ?, Désolé d'être aussi pointilleux
    Et encore un grand merci

  10. #10
    Modérateur
    Avatar de CinePhil
    Homme Profil pro Philippe Leménager
    Ingénieur d'études en informatique
    Inscrit en
    août 2006
    Messages
    13 820
    Détails du profil
    Informations personnelles :
    Nom : Homme Philippe Leménager
    Âge : 51
    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 : 13 820
    Points : 24 812
    Points
    24 812

    Par défaut

    Citation Envoyé par mikaeru Voir le message
    Mais dans le cas on la query retourne + de 10 collones
    Pas 10 colonnes mais 10 lignes si la personne a 10 prénoms et seulement 3 lignes si la personne n'a que 3 prénoms.

    Et pour un programmeur digne de ce nom, c'est un processus très classique de parcourir un jeu de résultat et de gérer la rupture sur le nom afin de rassembler tous les prénoms d'un nom.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique. Autoentrepreneur.
    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 la suite Linux Mageïa !

  11. #11
    Membre du Club
    Profil pro
    Inscrit en
    novembre 2007
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : novembre 2007
    Messages : 115
    Points : 59
    Points
    59

    Par défaut

    Citation Envoyé par CinePhil Voir le message
    Pas 10 colonnes mais 10 lignes si la personne a 10 prénoms et seulement 3 lignes si la personne n'a que 3 prénoms.

    Et pour un programmeur digne de ce nom, c'est un processus très classique de parcourir un jeu de résultat et de gérer la rupture sur le nom afin de rassembler tous les prénoms d'un nom.
    Bonjour en ce jour nouveau

    Dans mon cas ici, la table a actuellement 28 colonnes (je reviendrais sur ce problème dans un autre post ^^).

    Donc en cas de multiple prénom ce qui m'inquiète ce ne sont pas les qualités du programmeur, car comme tu le souligne cela devrait être facile à gérer pour lui, mais plutôt les ressources utilisé.

    Disons que chaque ligne fera +- 500 octets, dans le cas 4 prénoms (c’est mon cas ), est ce qu’il fera un read de 2000 octets ? Mais il y a aura bien un envoi de 2000 octets via le réseau.

    Ce processe sera souvent utilisé donc potentiellement gourmant en ressource.

    Encore Merci

  12. #12
    Modérateur
    Avatar de CinePhil
    Homme Profil pro Philippe Leménager
    Ingénieur d'études en informatique
    Inscrit en
    août 2006
    Messages
    13 820
    Détails du profil
    Informations personnelles :
    Nom : Homme Philippe Leménager
    Âge : 51
    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 : 13 820
    Points : 24 812
    Points
    24 812

    Par défaut

    Citation Envoyé par mikaeru Voir le message
    Dans mon cas ici, la table a actuellement 28 colonnes
    Mais est-il nécessaire de ramener les 28 colonnes à chaque fois qu'on a besoin de tous les prénoms du client ?
    Dans les requêtes, il faut éviter la guerre des étoiles !

    (je reviendrais sur ce problème dans un autre post ^^).
    Effectivement, 28 colonnes, ça commence à faire un peu beaucoup ; n'y aurait-il pas d'autres optimisations du modèle de données à faire ?
    Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique. Autoentrepreneur.
    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 la suite Linux Mageïa !

  13. #13
    Membre du Club
    Profil pro
    Inscrit en
    novembre 2007
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : novembre 2007
    Messages : 115
    Points : 59
    Points
    59

    Par défaut

    Bonjour,
    Merci pour l'intérêt que tu portes à mon post ^^.

    Cela sera très loin d'un select *, mais l'interface aura besoin de au moins 15 de ces champs, cela restera de la déduplication de donné pour les 14 autres colonnes.

    Ma question est :
    Est-ce que cela est il préférable à ceci :

    Code :
    1
    2
    SELECT nom, (sub SELECT ) prenom_1 ,(sub SELECT ) prenom_2 ,....
    FROM t_nom n
    Pour les 28 colonnes, je vais créer mon post tout de suite ^^.

    Merci

  14. #14
    Modérateur
    Avatar de CinePhil
    Homme Profil pro Philippe Leménager
    Ingénieur d'études en informatique
    Inscrit en
    août 2006
    Messages
    13 820
    Détails du profil
    Informations personnelles :
    Nom : Homme Philippe Leménager
    Âge : 51
    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 : 13 820
    Points : 24 812
    Points
    24 812

    Par défaut

    La jointure et le traitement d'affichage des données par le programme sera probablement plus rapide que les requêtes SELECT ; ça fait toujours pusieurs requêtes à exécuter par le SGBD plutôt qu'une seule !

    Quel volume de données (combien de lignes de résultat de la requête) sera à traiter par le programme ?
    Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique. Autoentrepreneur.
    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 la suite Linux Mageïa !

  15. #15
    Membre du Club
    Profil pro
    Inscrit en
    novembre 2007
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : novembre 2007
    Messages : 115
    Points : 59
    Points
    59

    Par défaut

    +- 300 000 rows (+-300 octects chaque ligne)

  16. #16
    Modérateur
    Avatar de CinePhil
    Homme Profil pro Philippe Leménager
    Ingénieur d'études en informatique
    Inscrit en
    août 2006
    Messages
    13 820
    Détails du profil
    Informations personnelles :
    Nom : Homme Philippe Leménager
    Âge : 51
    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 : 13 820
    Points : 24 812
    Points
    24 812

    Par défaut

    Pour quel besoin le programme devrait-il traiter autant de noms en même temps ?
    J'imagine qu'il ne s'agit pas d'afficher d'un coup les 300 000 lignes ?

    300 000 lignes c'est tout petit pour un SGBD mais ça commence à être sensible pour un programme. Tout dépend du traitement qui est fait par ce programme sur le jeu de données.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique. Autoentrepreneur.
    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 la suite Linux Mageïa !

  17. #17
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro Frédéric BROUARD
    Expert SGBDR & SQL
    Inscrit en
    mai 2002
    Messages
    13 563
    Détails du profil
    Informations personnelles :
    Nom : Homme Frédéric BROUARD
    Localisation : France

    Informations professionnelles :
    Activité : Expert SGBDR & SQL
    Secteur : Conseil

    Informations forums :
    Inscription : mai 2002
    Messages : 13 563
    Points : 30 071
    Points
    30 071

    Par défaut

    Dans le cadre de la solution que je vous ais déjà donné :
    http://blog.developpez.com/exercices...-de-personnes/
    Nous avons implémenté une vue avec les données de la personne et deux colonnes calculées par une même UDF :
    PRENOM_USUEL
    AUTRES_PRENOM
    La première contient le prénom usuel et s'il est composé le recompose.
    La seconde contient la liste de toutes les autres prénoms, séparé par des virgules et pour les prénoms composés, par un tiret.
    Voici le code de l'UDF (SQL Server) qui fait cela :
    Code :
    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
    --==========================================================================--
    -- Fonction scalaires de mise à plat de tous les prénoms d'une personne 
    --==========================================================================--             
    CREATE FUNCTION S_PRS.F_LISTE_PRENOMS (@PRS_ID INT, 
                                           @USUEL  BIT)
    RETURNS VARCHAR(max)
    AS
    /****************************************************************************** 
    * Fonction scalaire récupérant tous les prénoms d'une personne                *
    ******************************************************************************* 
    * Fred. Brouard - http://sqlpro.developpez.com - www.sqlspot.com - 2009-04-20 * 
    *******************************************************************************
    * @PRS_ID id de la personne physique                                          *
    * @USUEL : Si 1 prénom usuels selement                                        *
    *          Si 0 autres prénoms                                                *
    *          Si NULL tous les prénoms, l'usuel en premier                       *
    ******************************************************************************/ 
    BEGIN
       DECLARE @PRENOMS VARCHAR(max);
       SET @PRENOMS = '';
    -- concaténation des prénoms   
       SELECT /* 37E203D2-440F-4567-A81E-A17BF9BBE24E */
              @PRENOMS = @PRENOMS + PRN_LIBELLE 
              + CASE PPN_COMPOSE WHEN 1 THEN '-' ELSE ', ' END
       FROM   S_PRS.T_J_PRS_PRENOMMEE_PRN_PPN AS PPN
              INNER JOIN S_REF.T_R_PRENOM_PRN AS PRN
                    ON PPN.PRN_ID = PRN.PRN_ID
       WHERE  PPN_USUEL = COALESCE(@USUEL, PPN_USUEL)
         AND  PPN.PRS_ID = @PRS_ID
       ORDER  BY PPN_USUEL DESC, PPN_ORDRE;
    -- si plus de 128 caractères
       IF LEN(@PRENOMS) > 128
       BEGIN
          SET @PRENOMS = SUBSTRING(@PRENOMS, 1, 128);
          SET @PRENOMS = SUBSTRING(@PRENOMS, 1, LEN(@PRENOMS) - CHARINDEX(REVERSE(@PRENOMS), ' '));
       END
    -- suppression du caractère virgule finale
       SET @PRENOMS = CASE 
                         WHEN @PRENOMS = '' THEN NULL 
                         ELSE SUBSTRING(@PRENOMS, 1, LEN(@PRENOMS) - 1) 
                      END;
       RETURN @PRENOMS;
    END
    GO
    Bien entendu, nous avons les fonctions inverses pour les masques de saisie. Elle sont inspirée par ll'UDF suivante :
    http://blog.developpez.com/sqlpro/p7...sure-multiple/

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Blog SQL, SQL Server, modélisation données : http://blog.developpez.com/sqlpro
    http://www.sqlspot.com : modélisation, conseils, audit, optimisation, formation
    * * * * * Enseignant CNAM PACA - ISEN Toulon - CESI Aix en Provence * * * * *

  18. #18
    Membre du Club
    Profil pro
    Inscrit en
    novembre 2007
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : novembre 2007
    Messages : 115
    Points : 59
    Points
    59

    Par défaut

    Bonjour,
    Merci pour vos réponses.

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •