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 :

Conception aux normes SQL Server


Sujet :

MS SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre expérimenté
    Avatar de SQL_EVAN
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Juillet 2011
    Messages
    161
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Thaïlande

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

    Informations forums :
    Inscription : Juillet 2011
    Messages : 161
    Par défaut Conception aux normes SQL Server
    En lisant des bouquins et des informations sur des sites reconnus je vois souvent des différences sur la casse. Des fois c'est en camelCase (TableFactures) et très souvent c'est en majuscule (TABLE_FACTURES) Ce qui est notamment le cas dans SQL par F Brouard, R Bruchez et C Soutou.

    Moi, j'ai toujours envie de conceptualiser mes bases en majuscules mais souvent cela ne colle pas avec les dev.

    Un exemple récent. On dev sur azure en C# et le dev lead a souhaité utiliser un design pattern MVC. Donc le problème c'est que son outil lui génère ses objets à partir des entités en base et donc cela lui fait un framework qui ne colle pas avec les normes C# (camelCase).

    J'ai été donc obligé de recréer le schéma avec la nomenclature camelCase.

    Y a t-il pas une solution pour cela sauf de créer des vues à droite et à gauche qui créent une usine à gaz?

    Est-ce pas plus logique de travailler toujours en camelCase? Si cela est le cas pourquoi écrire des livres avec des modèles nommés en majuscule?

  2. #2
    Modérateur

    Profil pro
    dba
    Inscrit en
    Janvier 2010
    Messages
    5 643
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : dba

    Informations forums :
    Inscription : Janvier 2010
    Messages : 5 643
    Par défaut
    Bonjour,

    Bien souvent, tout ce qui est de près ou de loin du SQL s'écrit en majuscule. Historiquement, à l'époque ou l'on écrivait le code SQL dans les programmes, cela permettait de différencier facilement le code applicatif du code SQL.

    Les méthodes ont changé, mais les habitude sont restées. Cependant, ce n'est nullement une obligation. Chacun reste libre de définir ses propres règles de nommage...

    Y a t-il pas une solution pour cela sauf de créer des vues à droite et à gauche qui créent une usine à gaz?
    Cela ne crée pas une usine à gaz, mais ce qu'on appelle un modèle externe de données. Bien que peu répandu, cela reste pourtant une bonne pratique.
    Rien ne vous empêche de créer un schéma pour contenir ces vues, ceci réduira votre impression d'usine a gaz : vous avez vos tables d'un coté, normalisées, avec la convention de nommage qui vous semble la plus adaptée, et vos vues de l'autre. Votre application n'accède jamais directement à vos tables, mais passe par vos vues. La encore, chacun est libre de choisir, mais le nommage de vos vues peut s'adapter aux conventions que vous utilisez dans votre code applicatif.
    Même si cette solution semble plus lourde à mettre en place, elle présente à long terme de nombreux avantages, notamment de pouvoir modifier votre modèle de données sans modifier votre code applicatif...

    Enfin, il me semble que la plupart des ORM permettent de renommer les objets qu'ils mappent, ça reste une alternative.

  3. #3
    Membre expérimenté
    Avatar de SQL_EVAN
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Juillet 2011
    Messages
    161
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Thaïlande

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

    Informations forums :
    Inscription : Juillet 2011
    Messages : 161
    Par défaut
    Super réponse et ça correspond bien avec mes avis. Je vais peut-être utiliser des vues dès le début alors avec le système de schémas.

    Je n'avais jamais pensé au fait que les majuscules permettaient de voir les différences dans les anciennes pages de code. Bien à savoir ça.

    Merci.

  4. #4
    Membre Expert Avatar de iberserk
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Novembre 2004
    Messages
    1 795
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 795
    Par défaut
    attention, en créant des vues votre "dev lead" (ils en invente tous les jours!) va encore venir pleurnicher car sauf erreur de ma part, LUNQ TO ENTITIES (car il s'agit assurément de lui!) sera incapable de créer lui même les liaisons entre les entités ARGGHHH

    Mais s'il est en V4 il doit se baser sur le POCO et s'il est malin il peut passer par des outils capable de générer eux même les noms d'entité en fonction de pattern paramétrable...

  5. #5
    Membre expérimenté
    Avatar de SQL_EVAN
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Juillet 2011
    Messages
    161
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Thaïlande

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

    Informations forums :
    Inscription : Juillet 2011
    Messages : 161
    Par défaut
    C'est vrai, ça crée pas mal de travail pour rien au final. Je vais laisser les tables en camelCase je pense et arrêter de me plaindre haha

  6. #6
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 998
    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 998
    Billets dans le blog
    6
    Par défaut
    Rien ne vous empêche de créer des trigger DDL détectant les CREATE et ALTER TABLE, faire un ROLLBACK,t aller majusculiser la commande SQL et la relancer !

    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/ * * * * *

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Conception d'un datawarehouse avec Ms sql server 2005
    Par kfmystik dans le forum Outils
    Réponses: 3
    Dernier message: 06/11/2008, 16h06
  2. VB & SQL Server: accès aux utilisateurs
    Par GodGives dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 31/01/2008, 15h21
  3. SQL Server & VB6: accès aux utilisateurs
    Par GodGives dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 30/01/2008, 14h09
  4. Réponses: 1
    Dernier message: 24/07/2007, 09h18
  5. Accès aux données SQL Server
    Par MayOL69bg dans le forum C#
    Réponses: 9
    Dernier message: 20/03/2007, 10h44

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