Что допускает MySQL
По руководству MySQL, имена без кавычек могут состоять из латинских букв, цифр, знаков $ и _ и символов из диапазона U+0080–U+FFFF (в него входит кириллица). Имена внутри обратных кавычек допускают более широкий набор символов. Имена баз, таблиц и столбцов не могут заканчиваться пробелом.
Зачем кавычки
Если имя содержит нестандартные символы, его нужно заключать в обратные кавычки в каждом запросе. На практике это неудобно: приложения, ORM и инструменты миграции не всегда корректно обрабатывают такие имена.
Что выбирают на практике
- Английские слова — самый распространённый вариант.
- Транслит — для терминов без точного перевода.
- Кириллица — редко, преимущественно в учебных и закрытых проектах.
Как получить имена латиницей
| Название по-русски | Имя в базе |
|---|---|
| Заказы клиентов | zakazy_klientov |
| Цена товара | cena_tovara |
| Дата создания | data_sozdaniya |
Используйте разделитель «Подчёркивание»: так имена остаются совместимыми с обычными запросами без кавычек. Slug-поля в таблицах — отдельная тема: «Слаг в базе данных: тип поля, индекс, длина».
Источник
Использовано руководство MySQL: Schema Object Names. Для других СУБД правила отличаются.
Типичные ошибки
- Использовать русские имена без кавычек и получать ошибки.
- Смешивать русские и латинские слова в одном имени.
- Заканчивать имя пробелом.
- Менять схему именования после запуска проекта.
Пошагово: приводим имена к единому виду
- Выпишите сущности и поля проекта.
- Получите имена в генераторе с разделителем «Подчёркивание».
- Согласуйте схему с командой.
- Создайте таблицы и проверьте запросы без кавычек.
- Занесите соответствие в документацию.
Разбор заголовка по шагам
Возьмём заголовок «Заказы клиентов» и пройдём путь до адреса. Для имени таблицы используем разделитель «Подчёркивание».
Заголовок: Заказы клиентов
Без служебных слов: Заказы клиентов
Адрес целиком: zakazy-klientov
Адрес короче: zakazy-klientov
Режим «Убрать служебные слова» в генераторе делает второй шаг сам. Короткий адрес читается легче и лучше помещается в строку браузера. Ограничения по длине и другие правила составления адреса собраны в статье «Как составить ЧПУ-адрес страницы».
Памятка для редактора
Если в проекте несколько редакторов, дайте им короткую памятку. Достаточно этих правил:
- Имена — латиница и подчёркивание.
- Без кавычек.
- Единая схема именования.
Чек-лист
- Выбрать схему именования.
- Не использовать кавычки.
- Вести словарь терминов.
- Не менять схему после запуска.
Частые вопросы
Можно ли в MySQL называть таблицы по-русски?
Допустимо: имена без кавычек могут содержать символы U+0080–U+FFFF, а с обратными кавычками — более широкий набор.
Зачем обратные кавычки?
Они позволяют использовать нестандартные символы в имени. Неудобство — кавычки нужны во всех запросах.
Какой вариант выбрать?
Чаще всего — латинские имена с подчёркиванием.
Как получить транслит для названия таблицы?
Через генератор с разделителем «Подчёркивание».
Проверьте свои заголовки: вставьте их в генератор ЧПУ и посмотрите, как в адресе выглядят слова с этой буквой.