Ладно, это слегка теоретически, так что было бы здорово, если бы объективный энтузиаст базы данных высказал свое мнение.
Ради аргумента давайте согласимся, что существует такая концепция, как «базовая таблица» по отношению к запросу, когда одна таблица формирует большую часть информации из набора результатов.Представьте себе запрос, в котором есть три отношения - TableA, TableB и TableC
Предположим, что TableA имеет кардинальное число 1 миллион записей, а TableC имеет 500 записей, а TableC имеет 10 000.
Скажем, запрос выглядит так:
SELECT A.Col1
, A.Col2
, A.Col3
, A.Col4
, A.Col5
FROM TableA A
LEFT JOIN TableB B ON B.ID = A.TableBID
LEFT JOIN TableC C ON C.ID = A.TableCID
Хорошо, ясно Таблица A - это базовое соотношение, приведенное выше.Это самая большая таблица, она управляет результирующим набором, соединяясь «от», и визуально столбцы находятся даже на «левой стороне» результирующего набора.(Левая сторона на самом деле была критерием для моего коллеги).
Теперь давайте предположим, что TableA снова имеет 1 миллион строк, TableB является таблицей «соединения» или «моста» и имеет примерно 500 000 строк и TableCимеет 1000000 строкИтак, предположим, что запрос является просто внешним объединением, чтобы получить все столбцы в TableA и TableC, где существует связь, как показано ниже ...
SELECT A.*
, C.*
FROM TableC C
FULL OUTER JOIN TableB B ON C.ID = B.TableAID
FULL OUTER JOIN TableA A ON A.ID = B.TableCID
Хорошо, поэтому, учитывая последний запрос, кто-нибудь может сказать мне, что такое "base"отношение "есть?Я не думаю, что есть один, но надеялся на мнение другого человека базы данных.