Сами по себе нормальные формы (НФ) не требуют введения суррогатных (искусственных) ключей, но на практике их часто используют при нормализации, особенно начиная со 2НФ и 3НФ. Давайте разберём подробнее.
Читать далее »Все записи категории ‘Программирование’
SQL-инъекция: как работает и как защититься

SQL-инъекция (SQL Injection) — это распространённая и весьма опасная уязвимость веб-приложений. Она позволяет злоумышленнику вмешиваться в SQL-запросы, исполняемые на сервере, и получить несанкционированный доступ к данным, изменить их или даже удалить. При этом, злоумышленнику часто достаточно иметь доступ к фронт-енд сайта или приложения, где он экспериментирует с передаваемыми на сервер параметрами.
Этот процесс также не сложно автоматизировать.
Читать далее »А что такое SERIAL и чем он отличается от INT?
В SQL, когда вы создаёте поле для идентификатора (id
), ключа в таблице, часто используется либо INT
, либо SERIAL
. Они похожи, но не совсем одно и то же.
Первичный и внешний ключ в SQL : простое объяснение
Когда вы впервые сталкиваетесь с базами данных, всё кажется немного запутанным: таблицы, строки, какие-то «ключи»… Но если объяснить это на живых примерах — всё становится куда яснее. Давайте разберёмся, что такое первичный ключ, внешний ключ, и ещё одно важное пон — суррогатный ключ.
Читать далее »SQL-антипаттерны: плохие JOIN’ы и как их избежать
JOIN — один из мощнейших инструментов в SQL. Но с большой силой приходит большая ответственность. Неверное использование JOIN может приводить к дублированию строк, утечке производительности, неявным ошибкам и даже разрушению логики приложения.
В этой статье рассмотрим примеры антипаттернов при использовании JOIN’ов, объясним, почему они плохи, и как их избегать.
Читать далее »JOIN vs UNION — в чём разница?
Эти два оператора в SQL на первый взгляд делают похожее — они «объединяют» таблицы. Но делают это по-разному и для разных целей.
Читать далее »Что такое CROSS JOIN
Конструкция CROSS JOIN
в SQL — это один из видов JOIN
, который создаёт декартово произведение двух таблиц: каждая строка из первой таблицы соединяется со всеми строками второй.
Как получить код языка по умолчанию в Drupal
В Drupal (начиная с версии 8 и выше, включая 10 и 11), чтобы получить код языка по умолчанию сайта (например, en
, ru
, fr
), используйте следующий способ:
1 2 3 |
$default_language_code = \Drupal::languageManager() ->getDefaultLanguage() ->getId(); |
urlencode vs rawurlencode: разница и примеры в PHP
Если вам нужно передать данные в URL в PHP, вы наверняка сталкивались с функцией urlencode()
. А может быть, слышали и о rawurlencode()
. И ещё третья функция — http_build_query()
— всплывает в ответах на форумах и в рекомендациях официальной документации.
Настройка ЧПУ в Drupal 10: path_alias, Pathauto и Token

Drupal — мощная, гибкая и в то же время довольно сложная CMS. Один из важных аспектов SEO и удобства пользователей — это ЧПУ (человекопонятные URL). В этой статье мы рассмотрим, как настроить такие адреса в современных версиях Drupal (9 и 10) с помощью ядра и популярных модулей.
Читать далее »