Мы должны определить первичные ключи с префиксом tablename.
Мы должны использовать use_id вместо id и post_id вместо просто id.
Преимущества : -
1) Легко читаемый
2) Простота дифференцирования в запросах на соединение. Мы можем минимизировать использование псевдонима в запросе.
таблица пользователей: user_id (PK)
таблица сообщений: post_id (PK) user_id (FK) здесь пользовательская таблица PK и таблица сообщений FK одинаковы
Согласно документации ,
3) Таким образом, мы можем получить преимущество из ЕСТЕСТВЕННОЕ СОЕДИНЕНИЕ и СОЕДИНЕНИЕ с ИСПОЛЬЗОВАНИЕМ
Естественные объединения и объединения с помощью USING, включая варианты внешнего соединения,
обрабатывается в соответствии со стандартом SQL: 2003. Цель состояла в том, чтобы выровнять
синтаксис и семантика MySQL по отношению к NATURAL JOIN и
ПРИСОЕДИНЯЙТЕСЬ ... ИСПОЛЬЗУЯ согласно SQL: 2003. Тем не менее, эти изменения в соединении
обработка может привести к различным выходным столбцам для некоторых объединений.
Кроме того, некоторые запросы, которые, казалось, работали правильно в более старых версиях
(до 5.0.12) должен быть переписан для соответствия стандарту.
Эти изменения имеют пять основных аспектов:
1) Способ, которым MySQL определяет столбцы результатов операций соединения NATURAL или USING (и, следовательно, результат всего предложения FROM).
2) Расширение SELECT * и SELECT tbl_name. * В список выбранных столбцов.
3) Разрешение имен столбцов в соединениях NATURAL или USING.
4) Преобразование соединений NATURAL или USING в JOIN ... ON.
5) Разрешение имен столбцов в состоянии ON для JOIN ... ON.
Примеры: -
SELECT * FROM user NATURAL LEFT JOIN post;
SELECT * FROM user NATURAL JOIN post;
SELECT * FROM user JOIN post USING (user_id);