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

MS SQL Server Discussion :

TSQL et Enum


Sujet :

MS SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert Avatar de Mose
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 143
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 143
    Par défaut TSQL et Enum
    Sujet apparemment courant, je cherche une idée pour contourner.

    J'utilise une enum Etat dans mon code C#.
    Je stocke cet état dans ma base (int), et je m'en sert beaucoup dans mes stor proc
    (pourquoi ? En gros, la même base est attaquée depuis 3 appli différentes, et suivant l'état un objet est accessible ou pas à telle appli, le tri est fait au niveau base pour alléger la masse de données échangées avec la base)

    Seulement voilà, les specs changent tout le temps, et je dois rajouter des états régulièrement, et du coup repasser derrière mes 200 stor procs pour modifier les états, et comme bien entendu c'est à faire pour hier et qu'on n'a pas le temps de tester à 100%, y'a des bugs à la con.

    Les solutions déjà pensée :
    * Utiliser une chaine : non, ça change trop la volumétrie et c'est plus lent à traiter que des entiers
    * Utiliser des nombres spéciaux pour les repérer plus facilement dans les procs en faisant "rechercher tout" (ex : 654343, 654344, ...) => Oui mais c'est de la bidouille
    * Utiliser des constantes ? Malheureusement ça n'existe pas en T-SQL
    * Créer une table contenant la liste des différents état : c'est plus souple, mais dans les stor procs ça oblige à faire un appel à une fonction ou à faire un select en plus, bref ça ralenti certaines opérations qui ont besoin d'être très optimisées...

    Bref : la question est là : comment gérer facilement un mapping avec une enum en T-SQL, sachant que la problématique principale c'est qu'on a des migrations assez régulièrement (agile programming et contraintes métier obligent)

    Quelques sources qui parlent du pb mais qui ne donnent pas de solution qui me convienne :

  2. #2
    Membre Expert
    Avatar de rudib
    Homme Profil pro
    Fakir SQL Server & NoSQL
    Inscrit en
    Mai 2006
    Messages
    2 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Fakir SQL Server & NoSQL

    Informations forums :
    Inscription : Mai 2006
    Messages : 2 573
    Par défaut
    Bonjour,

    La table de référence est la meilleure solution. Une jointure sur une table qui ne comporte que qq lignes n'est en rien problématique pour les performances.

Discussions similaires

  1. [MySQL] Récupérer les valeurs définies dans un champ ENUM
    Par Huntress dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 03/07/2010, 18h55
  2. [VB.NET] Variable de type enum avec du string
    Par Mouse dans le forum Windows Forms
    Réponses: 4
    Dernier message: 13/01/2005, 18h22
  3. [MySQL] Valeur par défaut d'un type ENUM
    Par aliasjcdenton dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 31/10/2004, 20h44
  4. enum??
    Par $grm$ dans le forum PostgreSQL
    Réponses: 10
    Dernier message: 23/04/2004, 16h34
  5. [TABLE][ENUM] u champs à choix multiple ?
    Par narmataru dans le forum SQL
    Réponses: 2
    Dernier message: 04/11/2003, 10h25

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