Пара советов по работе с MySQL


С момента своего выхода в 1995 году MySQL быстро стал самой популярной системой управления базами данных в мире. С такой популярностью приходит большая ответственность... и бесчисленное множество улучшений, обновлений и причудливых хитростей. Ниже представлены некоторые советы по работе с этой системой.

1. Не редактируйте файлы дампа
Если вы когда-нибудь видели файлы дампа, созданные mysqldump, то они ужасно похожи на обычные, безобидные текстовые файлы. Но любой, кто когда-либо пытался их отредактировать, быстро понял, что они нечто иное. Большинство людей редактируют их в стандартном текстовом редакторе, а затем начинают появляться повреждения БД. Единственный гарантированный способ избежать проблем - оставить файлы дампа в покое. Если вам нужно внести изменения в базу, то лучше пользоваться SQL-запросами, познакомиться с ними поближе вы можете в статье - https://itvdn.com/ru/blog/article/m-sql

2. Отношения таблиц
Существуют три формы табличных отношений: "один к одному" (one-to-one), "один ко многим" (One-to-Many или O2M) и "много ко многим" (Many-to-Many или M2M). Моя аналогия для O2M заключается в том, что это взаимоотношения родитель-ребенок, где один родитель может иметь много детей, но не наоборот. Таким образом, всегда помните, что нужно указывать внешний ключ (FK) в таблицу "детей" (многих). Для M2M, вам просто нужно создать справочную таблицу.

3. Объединяйте таблицы
Существует множество форм подключения к таблицам MySQL: ВНУТРЕННИЙ (INNER, ВНЕШНИЙ, ЕСТЕСТВЕННЫЙ, ЛЕВЫЙ И ПРАВЫЙ. Удивительно, но я не использую ни одну из них. Например, рассмотрим таблицы user и user_pic, в которых пользователь является родительской таблицей с множеством дочерних элементов или картинок. Как уже упоминалось ранее, мы помещаем FK (user_id) в таблицу user_pic и объединяем их (обратите внимание, что user_pk является основным ключом пользовательской таблицы):

"SELECT * FROM user, user_pic ГДЕ user.user_pk=user_pic.user_id".

Теперь две таблицы соединены вместе. За исключением особых случаев, когда вы можете использовать другие соединения (например, LEFT join для включения NULL-значений), этот подход справится с большинством ваших рабочих задач.

0   0