Есть ли разница между объединениями и таблицами ссылок по верстаку или это одно и то же?

Здравствуйте, я начал изучать некоторые C# и MySQL, и я пытаюсь сделать 2 или более таблиц для соединения друг с другом, чтобы сформировать реляционную базу данных.

Я искал информацию и обнаружил, что некоторые люди делают там дизайн в WorkBench, а некоторые используют объединения, как я видел в некоторых уроках по объединениям.

Меня смущают некоторые ключевые понятия, которые не очень хорошо объяснены. Например, разница между объединениями и ссылочными таблицами в WorkBench.

Как они работают? Это одно и то же? WorkBench используется только для создания шаблона проектирования для базы данных?

Когда я говорю "Внешний ключ" и "Первичный ключ" и соединяю их, это рассматривается как объединение или это совершенно другая концепция и имеет другое применение?

1 ответ

Объединения, внешние ключи и первичные ключи - это тесно связанные понятия в реляционной базе данных.

Первичный ключ однозначно определяет строки в данной таблице.

Внешний ключ обозначает первичный ключ в другой таблице.

Объединение - это способ извлечения данных из нескольких таблиц.

Я не использовал SQL Workbench много, но я предполагаю, что таблица ссылок ссылается на таблицу, содержащую несколько внешних ключей, чтобы создать отношение "многие ко многим" между двумя таблицами.

Например:

Таблица User

CREATE TABLE User(
    userId INT PRIMARY KEY,
    username VARCHAR(40)
);

Таблица Post

CREATE TABLE Post(
    postId INT PRIMARY KEY,
    postContents VARCHAR(max)
);

Таблица UserPost

CREATE TABLE UserPost(
    userId INT FOREIGN KEY REFERENCES User(userId),
    postId INT FOREIGN KEY REFERENCES Post(postId)
);

Стол UserPost будет "таблица ссылок", которая связывает вместе User а также Post таблицы для обозначения множества сообщений, которые может иметь любой пользователь.

Затем вы можете найти все сообщения данного пользователя с SQL-запросом, как показано ниже, используя UserPost связать вместе User а также Post

SELECT u.username, p.postContents FROM User u
  JOIN UserPost up ON up.userId = u.userId
  JOIN Post p ON up.postId = p.postId

Итак, в итоге, таблица ссылок позволяет нам использовать объединения, чтобы "объединять" информацию из нескольких таблиц. Из-за этого таблицы ссылок чаще называют "таблицами соединений". Смотрите этот пост для более подробной информации о таблицах соединения.

Другие вопросы по тегам