Как правильно называть таблицы в бд
Перейти к содержимому

Как правильно называть таблицы в бд

Yii Framework

В разных модулях и примерах по-разному называются таблицы и поля.

Мне кажется логичным называть таблицы также, как модель, с большой буквы: Product, PriceDescription. А поля также, как свойства модели: userId, userName.

Однако, все миграции, что я производил, создают такое: price_description и т.д., поля везде по-разному называются. Есть ли какой-то ПСР по этом вопросу?

Re: Правильный нейминг таблиц и полей MySQL

Стандарта не встречал, но вроде-как большинство пользуется такой записью:
Таблицы — post_author
Поля — user_id
Да и Gii так устроен, что имя таблицы post_author преобразует в название модели PostAuthor.
И еще 1 рекомендация, таблицы называть в единственном числе, что бы автоматически сгенерированое имя модели было тоже в единственном числе.

Лично я предпочитаю идти по пути yii для однообразия, да и привычно так.

Re: Правильный нейминг таблиц и полей MySQL

не знаю я считаю тупняковым называть таблицу в единственном числе. Поэтому называю примерно так:

Posts — таблица
Post — модель

Вместо id post_id, это вам потом поможет в том, что будет меньше ошибок типа: ambiguous

Поля в базе данных: user_id
Название переменных: $userId

Re: Правильный нейминг таблиц и полей MySQL

Стандартов нет, главное выбрать свой и следовать на протяжении всего проекта.
Я встречал как и таблицы во множественном числе, так и в единственном.

вот вырезка из доки по уии1

Большинство приложений хранят данные в БД. Мы предлагаем соглашения для именования таблиц и их полей. Стоит отметить, что Yii не требует строгого следования этим правилам.

Таблицы и поля именуются в нижнем регистре.
Слова в названиях разделяются символом подчёркивания (например, product_order).
В именах таблиц используется либо единственное число, либо множественное, но не оба сразу. Мы рекомендуем использовать единственное число.
Имена таблиц могут содержать префикс. Например, tbl_. Это особенно полезно, когда таблицы нашего приложения находятся в БД, используемой одновременно другими приложениями.

Правила составления имен в MySQL

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

На подбор имени элемента, с которым мы работаем, может оказывать влияние ряд факторов, ключевыми среди которых являются:

  • Ограничения по набору символов, которые могут быть использованы
  • Ограничения по количеству символов
  • Контекст в котором используется имя
  • Режим в котором работает сервер, на котором расположена наша СУБД

Теперь рассмотрим их подробнее:

Символы, которые мы можем использовать

К допустимым относят:

  • Все цифры и буквы, которые используются и корректно распознаются на сервере
  • Значок доллара «$»
  • Значок нижнего подчеркивания «_»

Обратите внимание, что все символы мы можем использовать в любом порядке, начиная названия как с чисел и букв, так и со спецсимволов.

Ограничением в именах столбцов будет необходимость наличия в имени кроме цифр еще букв или оговоренных выше символов. Поскольку если имя будет составлено исключительно из цифр, то оно практически ничем не будет отличаться от простого числа для сервера. Мы же хотим избежать подобных казусов в нашей работе?

Ограничением в именах псевдонимов будет только то, что в случае появления в коде псевдонима только из цифр, с пробелами или же тождественного какому-либо ключевому слову MySQL, возникает необходимость заключить его в кавычки.

К ограничениям имен баз данных и таблиц помимо двух вышеперечисленных относится следующие:

  • Запрещено использовать в именах точки. Даже если имя заключено в кавычки. Это связанно с тем, что сервер считывает точку как специальный разделитель, что в конечном итоге ведет к ошибкам.
  • Запрещено использовать слеши « /» «\». При их появлении в имени появляется ошибка связанная с тем, что сервер некорректно считывает символы запрещенные в именах файлов и каталогов операционных систем, на которых он работает.

Длина, которой могут достигать имена

  • 64 символа – максимально допустимый размер для имен БД, таблиц, столбцов и индексов.
  • 256 символов — максимально допустимый размер для псевдонимов.

Обращения по именам (квалификаторы)

Базы данных

Выбрать вариант обращения к БД проще всего, поскольку он у нас всего один – просто указание имени…

Таблицы
  • Обращение к таблице по полностью квалифицированному имени:
Столбцы
  • Аналогично таблицам мы можем использовать в обращении полностью квалифицированное имя: При таком варианте у нас в запросе четко определены как БД, так и таблица со столбцом к которым мы обращаемся: db_name.tbl_name.col_name
  • При использовании частично квалифицированного имени мы указываем таблицу и столбец, но не указываем БД: tbl_name.col_name
  • Не квалифицированные имена. Это наиболее распространенная форма запросов, поскольку необходимости в их полной квалификации зачастую просто нет. Стоит только помнить, что в обработке запроса будет участвовать текущая БД. Для доступа к данным из другой БД нам нужны более квалифицированные запросы.

Режим работы сервера

Если при запуске сервера были заданы параметры —ansi или —sql-mode=ANSI_QUOTES при составлении имен могут быть использованы и обычные двойные кавычки «”».

Допустимые названия таблицы в базе данных MySQL

подскажите как можно называть таблицу в БД, к примеру.

из примера, какие названия допустимы а какие нет?

Есть различия в допустимых обращениях: вы не сможете написать

Подразумевая таблицу с именем prefix.table . Разделение точкой разделяет имя базы, схемы данных и имя таблицы (в терминологии mysql схемы данных не реализованы). Вы должны будете указывать имя таблицы в специальных кавычках:

Либо, если sql_mode установлен в соответствие стандарту ANSI_QUOTES :

Касательно использования имён в разных регистрах — есть нюансы в зависимости от используемой файловой системы.

В итоге имена с точками всегда требуют использования кавычек и при их отсутствии дадут ошибку отсутствия базы данных или таблицы. Плюс будут удивлять читающих ваши запросы. Регистрозависимые имена таблиц могут вызвать проблемы при переносе на другую файловую систему. Имена же в нижнем регистре с использованием нижнего подчёркивания для разделения слов используются часто, соответствуют стандарту SQL и проблем как правило не вызывают. Я написал «как правило» потому что всё-таки могут попадаться в списках зарезервированных слов — такие имена тоже можно использовать, но обращаться к ним возможно только с использованием кавычек.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *