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

Merise Discussion :

regles de nommage des champs


Sujet :

Merise

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 61
    Points : 40
    Points
    40
    Par défaut regles de nommage des champs
    bonjour
    je voulais savoir les règles pour nommer mes champs
    ex :
    client(idClient,nomClient, ...)
    commande(idCommande, dteCommande, FK_idClient)
    ma question est surtout sur le nom de la clé etrangere
    FK_idClient ou idClient
    d'où je pourrais faire un jointure naturelle (NATURAL JOIN ) en SQl ou non ?
    Merci

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 61
    Points : 40
    Points
    40
    Par défaut et le nom de la table
    client, clients ?

    existe t il avec merise une norme merci

  3. #3
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 801
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 801
    Points : 34 063
    Points
    34 063
    Billets dans le blog
    14
    Par défaut
    Une table est composée de colonnes et de lignes, pas de champs.
    Une entité d'un MCD Merise est composée d'attributs.

    Il est d'usage de nommer les entités du MCD, lesquelles deviendront des tables, par des noms au singulier.

    Il n'existe pas à ma connaissance de norme officielle pour nommer les objets des bases de données.
    Tu peux créer tes propres règles si aucune ne t'est imposée en lisant cet article de SQLPro

  4. #4
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 369
    Points : 36 908
    Points
    36 908
    Par défaut
    MERISE, je ne connais plus mais comme vos "identifiants" auront une portée plus générale que le modèle de données. Je peux vous faire partager quelques réflexions.

    Il n'y a pas de règles mais peut être quelques usages essentiellement dictés par:

    - la lisibilité des éventuelles requêtes SQL qu'on va faire sur la base... Et le fait que nous allons utiliser des identifiants construits avec des mots "composés". Pour discerner ces mots: CamelCase: ClientId ou séparation par '_': client_id

    - des contraintes sur les identifiants des langages de programmation utilisés, i.e. il n'est peut être pas judicieux de donner CLIENT-ID à un attribut/colonne/champ, s'il faut l'écrire CLIENT_ID ou CLIENTID pour désigner la chose dans le langage..

    Note: A mon sens s'il est illusoire de rechercher une égalité entre les identifiants des différentes représentations (classes, tables, ...), éviter d'avoir des tables de correspondances en ayant des règles de transformation simples.... Ou vous dire que potentiellement ClientID, CLIENT_ID, ClientId, client_id doivent correspondre à la même chose.

    - le langage utilisé. Si vous utilisez VB qui n'est pas typé, peut être est-il utile de préfixer l'identifiant par le type: SZ, DT,...

    Voilà en gros les questions à résoudre mais les réponses sont très subjectives
    Par exemple, lorsque vous écrivez:
    • client(idClient,nomClient, ...)
    • commande(idCommande, dteCommande, FK_idClient)

    pleins de choses choquent mon regard.
    Je peux essayer de vous expliquer pourquoi et vous, avoir de très bonnes raisons pour l'ignorer.

    Exemple:
    • idClient, idCommande: s'il est métier je l'appele Ident, si c'est technique ce sera plutôt ID éventuellement préfixé par U, O ou UU.
    Note: En général une table à une PK simple, dans le cas composite, c'est plus galère mais "Ident" a une propriété générique à presque toute vos tables: c'est la clé qui vous permet de construire la relation d'identité. Pas de bonne raison qu'elle ait un nom bizarre pour chaque table.

    • Clients ou clients plutôt que client: sémantiquement Clients est l'ensemble des clients (mais seulement pour le nom des tables).


    • client(idClient,nomClient, ...): pourquoi suffixer l'identifiant par 'client' alors que Client.ID, Client.nom, ... vous donne déjà une structure hiérarchique simple permettant de préciser le cas échéant.

    => Clients(ID, nom,...) pour le schéma
    => Client.ID, Client.nom les attributs d'un uplet 'Client'


    • Nom composés. nomClient ou ClientNom; idClient ou ClientID: utiliser le nom de l'entité en préfixe plutôt que celui de l'attribut. C'est cohérent avec la régularité de la hiérarchie précédente. Utiliser '_' comme séparateur me convient mieux visuellement mais il y a des règles simples pour naviguer entre ClientNom et client_nom


    • FK_idClient pourquoi de pas se contenter de 'Client', i.e Commande.Client relie la commande au Client. Si vous voulez être plus précis, Commande.ClientIdent ou Commande.ClientID disent la même chose mais avec une contrainte différente sur la réalisation.




    -W

Discussions similaires

  1. question sur nommage des champs
    Par altair8080 dans le forum Modélisation
    Réponses: 9
    Dernier message: 23/11/2011, 11h08
  2. [AC-2003] Regle de validation sur des champs dates dans des tables différentes
    Par ingal30 dans le forum VBA Access
    Réponses: 7
    Dernier message: 09/03/2010, 18h42
  3. [EJB2.1 Entity] Question sur le nommage des champs.
    Par rteuteu55 dans le forum Java EE
    Réponses: 8
    Dernier message: 04/06/2008, 18h05
  4. nommage explicite des champs
    Par didier.cabale dans le forum InterBase
    Réponses: 3
    Dernier message: 23/08/2004, 18h27
  5. Regle de nommage des versions
    Par Jay dans le forum Windows
    Réponses: 5
    Dernier message: 24/11/2003, 09h26

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