2016-05-04 1 views
2

Ceci est une question à propos de "nommer les choses" correctement. Plus précisément, comment distinguer entre:Est-ce qu'une "table de jointure" le résultat d'un SQL JOIN, ou la table entre un nombre-à-plusieurs

  1. la "entre" table dans un grand nombre-à-plusieurs (par exemple users, users_questions, questions)
  2. la table (temporaire) qui est créé au cours d'une SQL JOIN (par exemple, « SELECT * FROM utilisateurs INNER JOIN users_questions.user_id sUR users.id OU users_question.question_id = 37016694;`)
+0

Il s'agit d'une table qui établit la relation "join" entre les autres tables. Le résultat d'une requête est un ensemble de résultats (et * not * une table); une table/stockage temporaire dans une variable de table/chargement dans une table de données est différent d'un ensemble de résultats. – user2864740

+0

Le premier est un vrai tableau qui aide à normaliser votre base de données. La seconde est temporaire et ne fait pas partie de votre schéma actuel. –

Répondre

5

Beaucoup de concepteurs de bases de données utilisent le terme table de jointure dans votre premier sens: mettre en œuvre un plusieurs-à-plusieurs relat interaction entre les entités. Il est également appelé table de jonction, table d'association, et d'autres choses. Plus d'infos: https://en.wikipedia.org/wiki/Associative_entity

Je n'ai jamais entendu le second sens utilisé. (Mais, hé, je ne sors pas beaucoup. :-) Si vous écrivez de la documentation, ou de l'enseignement, je vous suggère de réserver le mot table pour signifier une table réelle, physique. Évitez d'utiliser le mot table pour un resultset sauf si vous le qualifiez en disant table virtuelle ou une telle phrase. De cette façon, vos lecteurs et vos étudiants ne perdront pas de temps à essayer de trouver les définitions de ces tables qui ne sont pas vraiment dans votre schéma.

+0

Je ne suis même pas sûr de ce qu'il veut dire au second sens - il a une requête avec une jointure - où est la table temporaire? – Hogan

+0

J'ai le plus souvent entendu la table de jonction, ou la table "entre", appelée table de liaison. –

+0

J'ai toujours fait référence à la "entre table" comme étant une table de référence croisée, parfois préfixé par "Xref" comme "Xref_User_Questions" –

0

Du point de vue relationnel, une table JOIN (une table qui résout beaucoup -à-plusieurs) est table physique réelle. Sinon, il ne survivrait pas entre les demandes. À mon avis, le terme «table jointe» a été inventé par les développeurs MVC «Code First» qui ignorent les entités physiques dans le domaine DB, surtout si elles ne sont pas affichées dans DbContext.

À mon avis, encore une fois, nous devrions honorer relationnel réalités.

Alors aidez-moi Codd.