Есть ли разница между объединениями и таблицами ссылок по верстаку или это одно и то же?
Здравствуйте, я начал изучать некоторые 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
Итак, в итоге, таблица ссылок позволяет нам использовать объединения, чтобы "объединять" информацию из нескольких таблиц. Из-за этого таблицы ссылок чаще называют "таблицами соединений". Смотрите этот пост для более подробной информации о таблицах соединения.