Не пренебрегайте дизайном базы данных.

В последнее время я заметил, что множество сайтов, таких как SoloLearn и Khan Academy, обучают SQL. Это отлично подходит для использования базы данных, но на самом деле вам нужно знать больше, чем SQL, чтобы разработать базу данных, точно так же, как вам нужно знать больше, чем JavaScript, чтобы разработать приложение. И учебники по SQL обычно этому не учат.

Допустим, вы знаете SQL, включая CREATE TABLE, SELECT, INSERT, UPDATE и DELETE. Вы знаете, как работают таблицы, как они ссылаются на другие таблицы и как работают объединения. Вы умеете создавать таблицы, указывать типы данных и, возможно, даже первичные и внешние ключи. Возможно, вы даже знаете, что такое индекс и зачем он вам нужен.

Так что же делать со всеми этими строительными блоками? Как избежать создания ужасной базы данных, которая перемешивает все в одну огромную таблицу, перемешивает слишком много данных в один (или слишком мало) столбцов в таблице или приводит к появлению большого количества дублированной информации?

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

Начните с хорошего и изучите немного теории проектирования баз данных!

Получите песочницу SQL

Сначала используйте SQLFiddle, если у вас есть вопросы по чему-либо и вам нужна песочница, которой можно поделиться с другими. Авторизуйтесь через Google. Используйте Мои скрипки в разделе "Параметры пользователя", чтобы получить ссылки на конкретные вещи, которыми вам нужно поделиться.

Скачать сервер сообщества MySQL

Установите MySQL Community Server на свой локальный компьютер, что бы он ни был. Причина, по которой я рекомендую это, заключается в наличии клиента MySQL Workbench и его инструментов редактирования модели. Это упрощает визуальные эксперименты с проектированием схем. Хотя вам может показаться, что быстрее просто набрать операторы CREATE TABLE, визуальный аспект может оказаться полезным.

По соображениям безопасности вы можете настроить соединение MySQL с использованием именованного канала и / или разделяемой памяти с легко запоминающимся именем, например «MYSQL». Это гарантирует, что он не прослушивает сетевой порт и не может быть взломан по сети. Просто отключите прослушивание порта TCP. Вы можете включить это позже, если вам нужно, повторно запустив установщик.

Прочтите этот учебник или, может быть, этот учебник о том, как использовать редактор моделей и Передать инжиниринг… (экспортировать) его в базу данных. На самом деле непонятно, как это сделать, но как только вы увидите, где они зарыли варианты, все станет менее неудобным.

Получить справочную документацию по MySQL

У Zeal и Dash есть MySQL-документация. Devdocs.io не работает из-за каких-то проблем с лицензированием. Использование одного из них, вероятно, будет проще, чем такие вещи, как справочная документация Windows или просмотр документации в сети.

Изучите актуальную информацию о базе данных

Теперь, когда у вас есть реальный сервер базы данных, с которым можно возиться, а не sql.js или что-то в этом роде, пришло время узнать о дизайне схемы базы данных. Вот несколько предложений, основанных на разных уровнях времени и заинтересованности, начиная с наименее вовлеченных.

  • 11 важных правил проектирования баз данных - прочтите это или что-то подобное, даже если вы больше ничего не читаете. Это краткий список того, как не быть совсем глупым.
  • Учебное пособие по проектированию баз данных - в нем гораздо более подробно рассматривается важная теория, но это не так уж и долго. Вы действительно хотите хотя бы прочитать это.
  • Изучите проектирование баз данных с MySQL (видео) - Раздел 4 о дизайне - это около 30 минут видео. Не говоря уже о том, что уроки охватывают и другие вещи, некоторые из которых вы можете пропустить, но, возможно, не все. Я не знаю, как они предлагают 30-дневную гарантию возврата денег на бесплатно, но я уверен, что никто не потеряет свои деньги.
  • Самостоятельные мини-курсы по базам данных] в Стэнфорде - Если вы действительно хотите проводить больше времени, вы можете узнать еще больше в этих видео лекций, которые предоставляются бесплатно и по запросу. Они также охватывают такие вещи, как XML, XPath и XSLT, но вы можете пропустить эту часть или пропустить любую часть, которую хотите.

Некоторые статьи в Википедии о разных вещах:

Если вы не планируете стать профессором базы данных, вам действительно не нужно знать все досконально, но чем больше вы знаете, тем больше проблем можно избежать.

Вывод

Я никогда не был большим специалистом по базам данных (всегда казался мне немного скучным, хотя это может быть интересно тем, кто действительно в этом разбирается), и поэтому никогда не был крупным экспертом по базам данных. Но это то, с чем программисты должны быть знакомы хотя бы в некоторой степени лучше, чем обычно.

Главное, постарайтесь выучить достаточно, чтобы не навести беспорядок. По моему опыту, добавление и удаление индексов не так уж и сложно, но изменение схемы после ее использования может быть очень болезненным. Однажды я увидел таблицу в коммерческом продукте, в которой несколько столбцов были оставлены без удаления, потому что разработчики хотели реорганизовать схему, но по какой-то причине не могли использовать ALTER TABLE, чтобы избавиться от бесполезных столбцов. Такого беспорядка нужно избегать!