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

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    juillet 2016
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 24
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : juillet 2016
    Messages : 7
    Points : 0
    Points
    0

    Par défaut Gestion de données utilisateurs

    Bonjour,
    Je commence à me former aux base de données pour un projet asp.net c#. Mon application web traite beaucoup de données et j'ai du mal à imaginer comment MySql peut les traiter. Actuellement mon application est en local et utilise google sheet comme base de données, ainsi, j'ai un classeur par client qui est créé lorsque le client s'inscrit et dans ce classeur chaque feuille représente une année qui contient les données d'une année, soit une dizaine de colonne par classeur. Mon problème est que le fonctionnement de MySql est différent d'un google sheet, avez vous une solution pour obtenir un résultats similaire avec MySql à moins que je puisse continuer à utiliser google sheet mais je doute de ses performance pour une application web professionnelle.

    Merci d'avance

  2. #2
    Membre éprouvé
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    septembre 2016
    Messages
    576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : Conseil

    Informations forums :
    Inscription : septembre 2016
    Messages : 576
    Points : 1 087
    Points
    1 087

    Par défaut

    Bonjour,
    Une base de données peut être aussi conçue par UML.
    Tu utilise quelle méthode pour tes classes ?
    Le savoir est une nourriture qui exige des efforts.

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    juillet 2016
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 24
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : juillet 2016
    Messages : 7
    Points : 0
    Points
    0

    Par défaut

    Bonjour,
    Merci de ta réponse, j'ai finalement trouvé la solution, je ne l'ai pas encore pleinement tester mais voici ma solution :
    Lorsque qu'un nouveau utilisateur s'enregistre je créer une base de données (qui remplace le fichier sheet) portant le nom du client avec cette commande :
    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
                    string connStr = "datasource=localhost;port=3306;username=root;password=;";
                    MySqlConnection conn = new MySqlConnection(connStr);
                    try
                    {
                        MySqlCommand command = conn.CreateCommand();
                        conn.Open();
     
                        command.CommandText = "CREATE DATABASE " + UserName_;
                        command.ExecuteNonQuery();
     
                    }
                    catch (Exception ex)
                    {
                        ErrorMessage.Text = ex.Message;
                        ErrorMessage.Visible = true;
                    }
                    conn.Close();
    Ensuite je créer des tables correspondant au années (replace les feuilles du sheet).
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     command.CommandText = "CREATE TABLE Metabolites(MetaboliteID VARCHAR(10) NOT NULL, Metabolite_Name VARCHAR(45) NULL, ReactionTime INT NULL, PRIMARY KEY (MetaboliteID)";
                       command.ExecuteNonQuery();
    Par contre je me pose encore la question du nombre limite de base de données pour un même serveur MySql, à combien est la limite max de base de données et un grand nombre de base de donnée impact-il les performance du MySql ?

  4. #4
    Rédacteur
    Avatar de SQLpro
    Homme Profil pro
    Expert SGBDR & SQL, spécialiste Microsoft SQL Server
    Inscrit en
    mai 2002
    Messages
    19 046
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert SGBDR & SQL, spécialiste Microsoft SQL Server
    Secteur : Conseil

    Informations forums :
    Inscription : mai 2002
    Messages : 19 046
    Points : 44 876
    Points
    44 876

    Par défaut

    Pourquoi voulez vous multiplier le nombre de bases de données ? Un SGBDR n'est pas un tableur !

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

  5. #5
    Membre éprouvé
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    septembre 2016
    Messages
    576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : Conseil

    Informations forums :
    Inscription : septembre 2016
    Messages : 576
    Points : 1 087
    Points
    1 087

    Par défaut

    Heu... non.

    Une base de données est un objet d'administration et une limite de backup/restore.
    Je sais bien que MySQL a fusionné les concepts de base de données et de schema mais, quoiqu'il en soit, créer un schema par utilisateur est une erreur.

    Qu'est-ce qui t’empêche de créer une bases pour ton appli en ayant une table par utilisateur, une table Metabolites ayant une colonne supplémentaire pour la relier à un utilisateur particulier, et pour éviter les erreurs une contrainte de FOREIGN KEY (moteur de stockage InnoDB pour que ça fonctionne bien sûr).

    Si tu trouve que j'utilise trop de termes compliqués et que le C# (donc la modélisation objet) t'es plus naturelle, alors adopte un ORM.
    Ta conception objet créera les objets de base de données selon ton modèle ; s'il tiens la route alors la base aussi.
    Simple et efficace.

    Voir ici :
    https://www.developpez.com/actu/6125...s-requetes-SQL
    Le savoir est une nourriture qui exige des efforts.

  6. #6
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    juillet 2016
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 24
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : juillet 2016
    Messages : 7
    Points : 0
    Points
    0

    Par défaut

    Bonjour,
    Encore merci de vos réponses, comme je l'ai dis je débute avec MySql, pour moi je trouvais que la solution que j'ai trouvé répondais à mes contraintes mais si elle n'est pas viable je ne vois pas comment réalisé mon projet. J'ai du mal à comprendre vos réponse donc voici comment je souhaite organisé mes données dans le détail :
    Mon application est pour la création et l'organisation de rotations culturales
    Premièrement lorsqu'un utilisateurs s'enregistre, je créer une base de données ou autre chose si ce n'est pas durable ducoup.
    Ensuite il commence par ajouter le nom de ses parcelles qui sont stockées dans une Table (nom parcelle/Texture/Surface) est donc propre à chaque client et créer et enregistré dans la BDD du client.
    Ensuite l'utilisateur peut créer une rotation de culture par années pour chaque parcelle, Ainsi je créer lorsque l'user ajoute une nouvelle années une nouvelle table (année) avec la 1ère colonne le nom de toutes les parcelles puis des colonnes avec la culture en place, les interventions, un commentaire...
    Au fur et à mesure l'user entre les années cela créer une nouvelle table à chaque fois.

    En plus de toutes ces données j'ai aussi une aide qui en fonction de la culture mis en place décrit ses avantages agronomiques, environnementaux, ses auxiliaires, ses bioagresseurs... et conseille l'exploitant pour la culture suivante et la gestion des intercultures

    Ainsi ma question est la suivante comment stockés et organisé toutes ses données soit avec une BDD ou autre chose, sachant que je souhaite une solution durable et professionnel pouvant servir pour un nombre important d'utilisateurs, merci d'avance de détaillé vos réponses je débute et ne maîtrise pas encore tous les termes.

    Cordialement,

  7. #7
    Membre éprouvé
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    septembre 2016
    Messages
    576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : Conseil

    Informations forums :
    Inscription : septembre 2016
    Messages : 576
    Points : 1 087
    Points
    1 087

    Par défaut

    L'étape de conception est une étape importante dans laquelle on s'approprie le "métier" du client pour en comprendre les éléments de détail comme les besoins génériques.

    Or cette acquisition ne doit pas masquer que la tâche demandée est de faire de l'informatique.
    L'expression du besoin que tu nous livre est trop "proche" de ce que le client te demande.
    Par exemple, il me semble que :
    * La vision parcellaire devrait être géo positionnée pour permettre de bénéficier des informations satellitaires. Comment se passera le rapprochement de données ?
    * Un exploitant gère une entreprise sur plusieurs parcelles. Chaque parcelle a son comportement et ses besoins. L'entreprise doit gérer l'ensemble au quotidien sans effet de cycle. Quel est/sont les méthodes de gestion des cycles ?
    * Comment savoir quels sont les conseils qui ont été suivis ? à quel % ? quels sont les résultats obtenus ?
    * Comment qualifier une "bonne pratique" quand les conditions météo ont mis à mal certains types de récoltes (et pas d'autre) ?
    * Comment s’établit une "normale" ? Doit-on importer des statistiques nationales ?
    * Quelle est la politique de sécurité ? Est-ce que les données sont soumises au RGPD ?
    * Quels sont les points qui seront traités dans la V2 puis la V3 ? Comment va se passer la procédure de mise à niveau ?
    * Si on doit faire appel à de la sous-traitance, que déléguer ? comment déléguer ? comment recetter ? Comment mesurer la tâche en heure/homme ?

    Une fois le périmètre bien défini alors viendra le temps de la conception.
    * Création du modèle conceptuel (et validation)
    * Création du modèle logique puis physique.

    Encore une fois, vu que tu pars depuis un langage objet, il est plus "rentable" pour toi d'utiliser la méthode UML pour créer tes classes et un ORM pour créer la base et les tables dans le SGBD de ton choix.

    Une fois ta base de données en place, nous serons heureux de t'aider pour l'écriture d'une requête particulière.
    Le savoir est une nourriture qui exige des efforts.

  8. #8
    Expert éminent sénior

    Homme Profil pro
    bourreau
    Inscrit en
    mars 2010
    Messages
    4 770
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : mars 2010
    Messages : 4 770
    Points : 12 472
    Points
    12 472
    Billets dans le blog
    1

    Par défaut

    Citation Envoyé par max4499 Voir le message
    Premièrement lorsqu'un utilisateurs s'enregistre, je créer une base de données ou autre chose si ce n'est pas durable ducoup.
    Non, la base de données est créée en amont, l'enregistrement d'un utilisateur ne doit qu'enrichir la BDD existante, ce n'est pas la même chose

    Pour que la BDD en question corresponde au besoin, il faut la modéliser dans les règles de l'art, pour celà il faut préalable identifier tous les acteurs (les parcelles, les agriculteurs, les cultures...) et collecter les règles de gestion

    Je vous invite à exposer votre besoin dans le forum modélisation/schema qui est consacré à ce genre de questions, il se trouve ici :
    https://www.developpez.net/forums/f6...sation/schema/

  9. #9
    Rédacteur
    Avatar de SQLpro
    Homme Profil pro
    Expert SGBDR & SQL, spécialiste Microsoft SQL Server
    Inscrit en
    mai 2002
    Messages
    19 046
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert SGBDR & SQL, spécialiste Microsoft SQL Server
    Secteur : Conseil

    Informations forums :
    Inscription : mai 2002
    Messages : 19 046
    Points : 44 876
    Points
    44 876

    Par défaut

    Citation Envoyé par max4499 Voir le message
    Premièrement lorsqu'un utilisateurs s'enregistre, je créer une base de données ou autre chose si ce n'est pas durable ducoup.
    Non. Une base de données n'est pas un tableaur et on ne créée pas autant de base que d'utilisateur. Touts vos utilisateurs doivent figurer dans une seule et même base. Dans cette base il y aura une table des utilisateurs du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    CREATE TABLE T_UTILISATEUR_USR
    (USR_ID        INT PRIMARY KEY,
     USR_EMAIL     VARCHAR(256) NOT NULL);
    Ensuite il commence par ajouter le nom de ses parcelles qui sont stockées dans une Table (nom parcelle/Texture/Surface) est donc propre à chaque client et créer et enregistré dans la BDD du client.
    Non. Toutes les parcelles doivent figurer dans une seule et même table liée à la table des utilisateurs…. Comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    CREATE TABLE T_PARCELLE_PCL
    (PCL_ID        INT PRIMARY KEY,
     URS_ID        INT NOT NULL REFERENCES T_UTILISATEUR_USR (USR_ID),
     PLC_TEXTURE   VARCHAR(64),
     PLC_SURFACE   FLOAT);
    Ensuite l'utilisateur peut créer une rotation de culture par années pour chaque parcelle, Ainsi je créer lorsque l'user ajoute une nouvelle années une nouvelle table (année) avec la 1ère colonne le nom de toutes les parcelles puis des colonnes avec la culture en place, les interventions, un commentaire…
    Encore non. Vous devez intégrer l'information d'année dans une colonne d'une table de rotation des cultures… Sinon vous aurez énormément de difficultés pour aller lires vos données par des requêtes….
    Au fur et à mesure l'user entre les années cela créer une nouvelle table à chaque fois.

    En plus de toutes ces données j'ai aussi une aide qui en fonction de la culture mis en place décrit ses avantages agronomiques, environnementaux, ses auxiliaires, ses bioagresseurs... et conseille l'exploitant pour la culture suivante et la gestion des intercultures
    Donc autant de tables liées aux cultures, parcelles ou utilisateurs…..

    Ainsi ma question est la suivante comment stockés et organisé toutes ses données soit avec une BDD ou autre chose, sachant que je souhaite une solution durable et professionnel pouvant servir pour un nombre important d'utilisateurs, merci d'avance de détaillé vos réponses je débute et ne maîtrise pas encore tous les termes.

    Cordialement,

    Comme indiqué !

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

  10. #10
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    juillet 2016
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 24
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : juillet 2016
    Messages : 7
    Points : 0
    Points
    0

    Par défaut

    Bonjour,
    Tout d'abord merci pour toutes vos réponses, ensuite, je m'excuse de ne pas vous avoir répondu avant, je suis en pleine période de révision. J'ai mis mon projet entre parenthèse jusqu'à mes examens, je vous ferai part de mes retours et questionnement quand je me serai replonger dedans d'ici 3-4 semaines.
    Merci encore !

Discussions similaires

  1. Réponses: 13
    Dernier message: 13/07/2016, 12h51
  2. Réponses: 4
    Dernier message: 12/12/2015, 16h25
  3. Réponses: 0
    Dernier message: 24/08/2015, 12h59
  4. Gestion des données d'un utilisateur dans une application
    Par Boujoute dans le forum PHP & MySQL
    Réponses: 4
    Dernier message: 05/06/2012, 14h48
  5. [Kylix] Sauvegarde de donnée utilisateur....
    Par Eclypse dans le forum EDI
    Réponses: 1
    Dernier message: 11/05/2002, 17h21

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