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

Optimisations SGBD Discussion :

Optimiser l'enregistrement d'un choix multiple


Sujet :

Optimisations SGBD

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 76
    Points : 49
    Points
    49
    Par défaut Optimiser l'enregistrement d'un choix multiple
    Bien le bonjour les gens,

    Je viens à vous car j'ai une question.
    Dans ma base de donnée j'ai différent champ ENUM mais je ne sais pas si ils sont justifié.

    L'utilisateur à de temps en temps des multichoix à faire. ENUM peut recevoir de multichoix?
    Pour un champ ENUM 'a','b','c'
    On ne peut sélectionner que 'a' ou 'b' ou 'c'?
    Ou on peut sélectionner 'a' et 'b' pour un même utilisateur?

    Si on ne peut pas alors serai t-il envisageable de créer un VARCHAR contenant mes valeurs 'a','b' par exemple, et ensuite découper ce string via explode. D'en faire un tableau et prendre les données qui m'intéresse.

    En gros ma question est : quel est le choix le plus judicieux pour enregistrer des multichoix dans une base de donnée?

    J'entend par multichoix, une liste de checkbox par exemple.

    Merci pour vos conseils
    Besoin d'un artisan ? Trouvez votre bonheur ici : http://www.touslesartisans.com

  2. #2
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 080
    Points : 30 803
    Points
    30 803
    Par défaut
    Dans le cadre d'une approche normalisée de la structure de votre base de données, la sélection possible d'une série de valeurs doit se traduire par une table détaillant les valeurs sélectionnées par l'utilisateur.

    Une structure de ce type par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Questionnaire(#qst_id, user_id, reponse_question_simple, ...)
    Reponse_proposee_question_multiple(#rp_id, libelle_rp)
    Reponse_utilisateur_question_multiple(#rp_id, #qst_id)
    A noter que ENUM ne fait pas partie de la grammaire du langage SQL normalisé (ANSI:2003)
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  3. #3
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 770
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 770
    Points : 52 726
    Points
    52 726
    Billets dans le blog
    5
    Par défaut
    Cela dépend dans quel sens vous entendez la chose :
    Optimiser l'enregistrement d'un choix multiple
    • Optimiser le stockage : c'est à dire obtenir le plus petit volume possible => une seule colonne de type octet(s) combinant des bits
    • Optimiser la recherche : c'est à dire obtenir le meilleur temps de réponse en lecture et affichage => table relationnelle.
    • Optimiser les mise à jour : c'est à dire obtenir le meilleur temps de réponse en insertion, modification et suppression => n colonnes supplémentaires dans la table.


    Ma préférence va à la solution 2 comme al1_24...

    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...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

Discussions similaires

  1. Réponses: 10
    Dernier message: 24/07/2019, 04h23
  2. [AC-2010] Enregistrer liste choix multiples
    Par Shabby dans le forum IHM
    Réponses: 3
    Dernier message: 16/01/2013, 14h08
  3. [AC-2007] lecture d'un enregistrement choix multiple
    Par chris45 dans le forum VBA Access
    Réponses: 1
    Dernier message: 13/01/2012, 21h16
  4. pb de select avec size avec choix multiple
    Par La_picolle dans le forum ASP
    Réponses: 10
    Dernier message: 28/08/2003, 15h21
  5. formulaire choix multiple
    Par pram dans le forum XMLRAD
    Réponses: 6
    Dernier message: 02/02/2003, 18h59

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