|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre du Club
![]() Inscription : novembre 2006 Messages : 233 ![]() |
Bonjour,
Au sein des entités est-il préférable d'avoir le même nom d'un champ ou faut-il différencier. Ex Table1 idTable1 Table1id Table2 idTable2 Table2id car quand je vais vouloir insérer un lien vers l'autre table je dois mettre Table2_lienidtable1 ?? |
|
|
00
|
|
|
#2 |
![]() ![]() |
Rien ne t'empêche de mettre id dans Table1 et Table2 et ensuite d'avoir une clé étrangère fk_table1 dans Table2
__________________
http://ego.developpez.com |
|
|
00
|
|
|
#3 | ||
|
Expert Confirmé Sénior
![]() ![]() ![]() Spécialiste en bases de données Inscription : septembre 2006 Messages : 2 884 ![]() |
Bonjour,
Je confirme. Si on examine la contrainte NOMENCLATURE_PARENT_FK ci-dessous : la colonne PieceParenteId de la table NOMENCLATURE fait référence à la colonne PieceId de la table PIECE : Code SQL :
Bref, si on veut faire participer des colonnes à une opération de jointure, il n’y a aucune contrainte de nommage.
__________________
_ Faites simple, mais pas plus simple ! (A. Einstein) E=mc², mais si on discute un peu, on peut l’avoir pour beaucoup moins cher... (G. Lacroix, « Les Euphorismes de Grégoire ») => La relativité n'existerait donc que relativement aux relativistes (Jean Eisenstaedt, « Einstein et la relativité générale ») __________________ Bases de données relationnelles et normalisation : de la première à la sixième forme normale (Bonne lecture !) |
||
|
|
00
|
|
|
#4 |
![]() ![]() |
D'abord, les champs sont à la campagne ou dans les formulaires, pas des entités d'un MCD ni dans les tables SQL !
Ensuite, il y a deux écoles : 1) Ceux qui considèrent qu'une chose doit avoir un nom unique et que donc une colonne porteuse d'une clé étrangère doit avoir le même nom que la colonne référencée. 2) Ceux qui considèrent que deux objets e la BDD ne peuvent avoir le même nom. Avant de décider, juste une remarque aux partisans du premier groupe : Si une table B référence deux fois la table A, on se retrouverait avec deux colonnes ayant le même nom, ce qui est impossible ! Vous l'aurez compris, je fais partie du second groupe ! En fait, je ne me pose même pas la question car j'ai une norme de nommage qui est inspirée de celle de SQLPro (lequel ferait plutôt partie du premier groupe si j'ai bien lu certains de ses écrits) et qui interdit naturellement d'avoir deux objets portant le même nom. Exemple de MCD : personne -0,n----diriger----1,1- projet |---------------0,n----travailler----0,n---| Tables qui en découlent : te_personne_prs (prs_id, prs_nom, prs_prenom...) te_projet_prj (prj_id, prj_id_chef, prj_nom, prj_date_debut...) tj_prs_travailler_prj_ptp (ptp_id_personne, ptp_id_projet)
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique. Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework... « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau) À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française ! Linuxiens, comptez-vous ! |
|
10
|
|
|
#5 | |
|
Expert Confirmé Sénior
![]() ![]() ![]() Spécialiste en bases de données Inscription : septembre 2006 Messages : 2 884 ![]() |
Citation:
__________________
_ Faites simple, mais pas plus simple ! (A. Einstein) E=mc², mais si on discute un peu, on peut l’avoir pour beaucoup moins cher... (G. Lacroix, « Les Euphorismes de Grégoire ») => La relativité n'existerait donc que relativement aux relativistes (Jean Eisenstaedt, « Einstein et la relativité générale ») __________________ Bases de données relationnelles et normalisation : de la première à la sixième forme normale (Bonne lecture !) |
|
|
|
00
|
|
|
#6 | ||
![]() ![]() |
Si je comprends bien la relationlang, en ajoutant à mon MCD l'association "vendre" suivante :
personne -0,n----diriger----1,1- projet |---------------0,n----travailler----0,n---| |---------------0,n----vendre----1,1------| Il deviendrait obligatoire de faire un RENAME pour produire une relation joignant personne et projet selon les associations diriger et vendre ? En SQL, ma table des projets deviendrait : te_projet_prj (prj_id, prj_id_chef, prj_id_vendeur, prj_nom, prj_date_debut...) J'ai renommé prs_id en prj_id_chef et en prj_id_vendeur Et pour donner la liste des projets avec le nom du vendeur et le nom du chef de projet, j'aurais cette requête : Code :
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique. Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework... « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau) À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française ! Linuxiens, comptez-vous ! |
||
|
00
|
|
|
#7 | ||
|
Expert Confirmé Sénior
![]() ![]() ![]() Spécialiste en bases de données Inscription : septembre 2006 Messages : 2 884 ![]() |
Bonsoir,
En détaillant les opérations, la requête SQL proposée s’écrit ainsi en relationlang (j’ajoute ce terme à mon dictionnaire de slang Code :
Lignes 1-3 : on nomme la variable te_personne_prs en CHEF (tout en renommant certains attributs) ; Lignes 4-6 : on nomme la variable te_personne_prs en VENDEUR (tout en renommant certains attributs) ; Ligne 7 : double jointure (le Modèle Relationnel de Données permet de mettre entre les accolades autant d’expressions que l’on veut, c’est la jointure n-adique) ; Ligne 8 : on finit de renommer les attributs. Ligne 9 : opération de projection finale : liste entre accolades des noms d’attributs. J'ai détaillé, mais on peut s'amuser à remboîter les expressions. Par exemple, à la ligne 9, à la place de R on peut utiliser une expression. Ainsi les lignes 8 et 9 peuvent être remplacées par : J RENAME (prj_nom AS nom_projet) { nom_projet, nom_chef_projet, prenom_chef_projet, nom_vendeur, prenom_vendeur } En y intégrant la jointure à la place de J : JOIN {te_projet_prj, CHEF, VENDEUR} RENAME (prj_nom AS nom_projet) { nom_projet, nom_chef_projet, prenom_chef_projet, nom_vendeur, prenom_vendeur } Etc., mais ça devient vite illisible, comme une requête SQL en une ligne.
__________________
_ Faites simple, mais pas plus simple ! (A. Einstein) E=mc², mais si on discute un peu, on peut l’avoir pour beaucoup moins cher... (G. Lacroix, « Les Euphorismes de Grégoire ») => La relativité n'existerait donc que relativement aux relativistes (Jean Eisenstaedt, « Einstein et la relativité générale ») __________________ Bases de données relationnelles et normalisation : de la première à la sixième forme normale (Bonne lecture !) |
||
|
|
00
|
|
|
#8 | ||
|
Expert Confirmé
![]() Inscription : juillet 2007 Messages : 2 178 ![]() |
Bonjour Altair8080, Ego, Fsmrel et CinePhil,
Très intéressante discussion, c'est pourquoi je me permets de m'immiscer ... Citation:
La 1ère école modifiée ne paraît pas si mauvaise. En effet, le cas Citation:
Si cela arrive, le suffixe du nom de la colonne par "_" puis la fonctionnalité correspondante assure l'unicité. Exemple : produit(id_produit, nom, ...) ; nomenclature(id_produit_composé, id_produit_composant, quantité, ...).
__________________
Dis-nous et à bientôt, Richard. ---------------------------------------------------------------------------------------------- . et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !
|
||
|
|
00
|
|
|
#9 | |
|
Expert Confirmé Sénior
![]() ![]() ![]() Spécialiste en bases de données Inscription : septembre 2006 Messages : 2 884 ![]() |
Citation:
__________________
_ Faites simple, mais pas plus simple ! (A. Einstein) E=mc², mais si on discute un peu, on peut l’avoir pour beaucoup moins cher... (G. Lacroix, « Les Euphorismes de Grégoire ») => La relativité n'existerait donc que relativement aux relativistes (Jean Eisenstaedt, « Einstein et la relativité générale ») __________________ Bases de données relationnelles et normalisation : de la première à la sixième forme normale (Bonne lecture !) |
|
|
|
00
|
|
|
#10 | |
|
Expert Confirmé
![]() Inscription : juillet 2007 Messages : 2 178 ![]() |
Bonjour Fsmrel,
Citation:
c'est vrai.Je voulais simplement dire que, en final (donc quand, réellement, il faut affecter un nom aux champs), ce nommage est plus ou moins effectué selon une des deux écoles évoquées. Mais c'est un détail, c'est vrai. Il n'empêche que, si l'on admet cela, bien qu'il n'existe pas de norme, un usage se met en place (que le chef de projet s'appropriera, comme le fait CinePhil qui préfixe/suffixe le nom de ses tables et de ses champs).
__________________
Dis-nous et à bientôt, Richard. ---------------------------------------------------------------------------------------------- . et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !
|
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com