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 :

conseils création base de données MySQL


Sujet :

MySQL

  1. #1
    Membre du Club
    Homme Profil pro
    statisticien
    Inscrit en
    Juin 2015
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Sénégal

    Informations professionnelles :
    Activité : statisticien

    Informations forums :
    Inscription : Juin 2015
    Messages : 48
    Points : 67
    Points
    67
    Par défaut conseils création base de données MySQL
    Bonjour tout le monde,
    c'est avec humilité que je me tourne vers vous à la recherche d'un conseil pour la création d'une base de données avec MySQL.
    Déjà sachez que je suis un statisticien qui s'est formé tout seul en MySQL, à travers le net notamment, dans l'espoir d'orienter ma carrière professionnelle dans le domaine des bases de
    données et de la programmation web avec PHP.
    Afin de consolider les connaissances acquises, et surtout me mettre en confiance, j'ai imaginé un petit projet qui consiste à concevoir une base de données avec MySQL, couplée à une interface
    web développée avec PHP.
    Concernant la base de données, je dispose actuellement d'un fichier excel contenant plusieurs onglets, classés par thème. Dans chaque onglet il y'a une ou plusieurs tables, avec des données mensuelles allant de 1980 à 2015 par exemple. Et c'est de là que vient la difficulté. Car chaque table contient plus de 300 champs, qui sont en fait une répétition des 12 mois de l'année (janvier, février, ... , décembre). D'où ma question: comment créer une telle table avec MySQL? Mon idée est de créer une table pour chaque année. Ainsi chaque table aura 12 champs ( janvier, ..., décembre). Et il y'aura autant de tables que d'années. l'inconvénient de cette méthode est que l'on va se retrouver rapidement avec plus d'une centaine de tables!
    Il y'aura sans nul doute un problème d'optimisation.
    Quant à l'interface web; elle permettra à un utilisateur de choisir une table et de visualiser ses données sur une période choisie, par exemple entre 2000 et 2010.
    Je sollicite votre aide pour trouver la bonne méthode de conception de cette base de données.
    merci d'avance

  2. #2
    Membre émérite
    Homme Profil pro
    tripatouilleur de code pour améliorer mon quotidien boulistique
    Inscrit en
    Février 2008
    Messages
    939
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : tripatouilleur de code pour améliorer mon quotidien boulistique
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2008
    Messages : 939
    Points : 2 287
    Points
    2 287
    Par défaut
    Bonjour

    Pour ce qui est de la conception de base de donnés, il vaut mieux s'adresser à la section Merise. Vous y trouverez des tutoriels et un forum qui vous permettra d'affiner votre conception.

    La section MySQL est plus destiné à l'utilisation de MySQL une fois la base bien conçue.

    Bonne chance.

    Pierre

  3. #3
    Membre du Club
    Homme Profil pro
    statisticien
    Inscrit en
    Juin 2015
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Sénégal

    Informations professionnelles :
    Activité : statisticien

    Informations forums :
    Inscription : Juin 2015
    Messages : 48
    Points : 67
    Points
    67
    Par défaut
    merci de m'avoir orienté.
    merci d'avoir pris le temps de lire mon message.

  4. #4
    Expert éminent sénior Avatar de Artemus24
    Homme Profil pro
    Agent secret au service du président Ulysses S. Grant !
    Inscrit en
    Février 2011
    Messages
    6 346
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Agent secret au service du président Ulysses S. Grant !
    Secteur : Finance

    Informations forums :
    Inscription : Février 2011
    Messages : 6 346
    Points : 18 958
    Points
    18 958
    Par défaut
    Bonjour laminekane.

    Citation Envoyé par laminekane
    Concernant la base de données, je dispose actuellement d'un fichier excel contenant plusieurs onglets, classés par thème.
    Est-ce que votre but est de charger la totalité de votre fichier excel dans une table mysql ?

    Citation Envoyé par laminekane
    Dans chaque onglet il y a une ou plusieurs tables, avec des données mensuelles allant de 1980 à 2015 par exemple. Et c'est de là que vient la difficulté. Car chaque table contient plus de 300 champs, qui sont en fait une répétition des 12 mois de l'année (janvier, février, ... , décembre). D'où ma question: comment créer une telle table avec MySQL?
    Il suffit de reprendre la structure de votre fichier excel, en évitant de faire des répétitions inutiles dans votre table mysql. Il faut partir du plus général et arriver au spécifique.

    Citation Envoyé par laminekane
    Mon idée est de créer une table pour chaque année. Ainsi chaque table aura 12 champs ( janvier, ..., décembre). Et il y'aura autant de tables que d'années. l'inconvénient de cette méthode est que l'on va se retrouver rapidement avec plus d'une centaine de tables!
    Très mauvaise idée de procéder ainsi. Il y a trop de répétitions. De plus, vos tables seront trop rigides à l'usage. Pas évolutives !

    Vu le peu d'information que vous nous donnez, le mieux serait de créer une table ayant la structure suivante :

    --> thème : type 'char(20)'.
    C'est le nom de votre onglet dans excel. Comme il y en a plusieurs, vous les nommez individuellement. Soit vous mettez un petit libelle court, soit un code numérique. Personnellement, je préfère le petit libellé.

    --> nom : type 'char(20)'.
    C'est le nom de l'une de vos tables dans l'onglet. Parel que pour le thème. Vous mettez un petit libellé.

    --> année : type 'smallint unsigned'.
    C'est-à-dire une valeur numérique allant de 0 à 65535.

    --> mois : type 'tinyint unsigned'.
    C'est-à-dire une valeur numérique allant de 0 à 255.

    --> valeur : type 'int'.
    Votre donnée statistique.

    Voici un résultat basique où je suis allé au plus simple.
    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
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    --------------
    SET AUTOCOMMIT = 0
    --------------
     
    --------------
    START TRANSACTION
    --------------
     
    --------------
    DROP DATABASE IF EXISTS `base`
    --------------
     
    --------------
    CREATE DATABASE `base`
            DEFAULT CHARACTER SET `latin1`
            DEFAULT COLLATE       `latin1_general_ci`
    --------------
     
    --------------
    DROP TABLE IF EXISTS `stats`
    --------------
     
    --------------
    CREATE TABLE `stats`
    (
      `theme`  char(20)          NOT NULL,
      `nom`    char(20)          NOT NULL,
      `annee`  smallint unsigned NOT NULL,
      `mois`   tinyint  unsigned NOT NULL,
      `val`    int               NOT NULL,
      PRIMARY KEY (`theme`,`nom`,`annee`,`mois`)
    ) ENGINE=InnoDB
      DEFAULT CHARSET=`latin1` COLLATE=`latin1_general_ci`
      ROW_FORMAT=COMPRESSED
    --------------
     
    --------------
    insert into `stats` (`theme`,`nom`,`annee`,`mois`,`val`) values
      ('pays', 'sénégal', 2015, 06, 47),
      ('pays', 'sénégal', 2015, 07, 255),
      ('pays', 'sénégal', 2015, 08, 5733)
    --------------
     
    --------------
    select * from stats order by annee, mois
    --------------
     
    +-------+---------+-------+------+------+
    | theme | nom     | annee | mois | val  |
    +-------+---------+-------+------+------+
    | pays  | sénégal |  2015 |    6 |   47 |
    | pays  | sénégal |  2015 |    7 |  255 |
    | pays  | sénégal |  2015 |    8 | 5733 |
    +-------+---------+-------+------+------+
    --------------
    COMMIT
    --------------
     
    --------------
    SET AUTOCOMMIT = 1
    --------------
     
     
    Appuyez sur une touche pour continuer...
    Au lieu de mettre des libellés, il faudrait mieux mettre un code numérique, du type 'int'.
    Associer ce code numérique à une autre table qui vous donnerait le descriptif complet du 'theme' et du 'nom'.

    @+
    Si vous êtes de mon aide, vous pouvez cliquer sur .
    Mon site : http://www.jcz.fr

  5. #5
    Membre du Club
    Homme Profil pro
    statisticien
    Inscrit en
    Juin 2015
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Sénégal

    Informations professionnelles :
    Activité : statisticien

    Informations forums :
    Inscription : Juin 2015
    Messages : 48
    Points : 67
    Points
    67
    Par défaut
    c'est simplement magnifique Artemus24!
    mon problème est quasiment résolu. sur la section merise on ma suggéré d'approfondir mes connaissances sur la modélisation.
    je peux dire avec certitude que j'ai trouvé la solution pour concevoir la base de données.
    merci merci merci!

  6. #6
    Expert éminent sénior Avatar de Artemus24
    Homme Profil pro
    Agent secret au service du président Ulysses S. Grant !
    Inscrit en
    Février 2011
    Messages
    6 346
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Agent secret au service du président Ulysses S. Grant !
    Secteur : Finance

    Informations forums :
    Inscription : Février 2011
    Messages : 6 346
    Points : 18 958
    Points
    18 958
    Par défaut
    Salut laminekane.

    Citation Envoyé par laminekane
    mon problème est quasiment résolu.
    N'exagérez pas ! Ce n'est qu'une simple ébauche pour démarrer la création de votre base de données.

    Savez-vous charger votre fichier excel dans la table mysql ?

    @+
    Si vous êtes de mon aide, vous pouvez cliquer sur .
    Mon site : http://www.jcz.fr

  7. #7
    Membre du Club
    Homme Profil pro
    statisticien
    Inscrit en
    Juin 2015
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Sénégal

    Informations professionnelles :
    Activité : statisticien

    Informations forums :
    Inscription : Juin 2015
    Messages : 48
    Points : 67
    Points
    67
    Par défaut
    lol artemus! je dis que mon problème est résolu car grâce à toi j'ai trouvé la voie!!

Discussions similaires

  1. Création base de données MySQL
    Par upperm dans le forum Débuter
    Réponses: 0
    Dernier message: 22/02/2013, 17h21
  2. Création d'exécutable java avec utilisation de la base de données MYSQL
    Par Parfait007 dans le forum Interfaces Graphiques en Java
    Réponses: 1
    Dernier message: 09/06/2012, 21h59
  3. Création d'un compteur avec une base de données mySQL
    Par khayyam90 dans le forum Contribuez / Téléchargez Sources et Outils
    Réponses: 0
    Dernier message: 14/02/2011, 19h52
  4. création d'une base de donnée Mysql en java
    Par nihadelg dans le forum JDBC
    Réponses: 1
    Dernier message: 24/11/2007, 17h45
  5. conseil création Base de données d'un magasin
    Par fessebleu dans le forum Schéma
    Réponses: 2
    Dernier message: 15/11/2007, 23h50

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