Подчеркивают ли имена таблиц влияющие на производительность или вызывают проблемы на некоторых платформах?
Например, user_profiles
Было бы лучше использовать userProfiles
или это просто вопрос личных предпочтений?
Подчеркивают ли имена таблиц влияющие на производительность или вызывают проблемы на некоторых платформах?
Например, user_profiles
Было бы лучше использовать userProfiles
или это просто вопрос личных предпочтений?
Неа. Подписи подчеркивания являются законными в именах таблиц.
Эта страница здесь в документации по MySQL сообщает вам, какие символы разрешены.
В принципе:
Разрешенные символы в некотируемых идентификаторах:
ASCII: [0-9, a-z, A-Z $_]
Extended: U + 0080.. U + FFFFРазрешенные символы в цитируемых идентификаторах:
ASCII: U + 0001.. U + 007F
Extended: U + 0080.. U + FFFF
Лично я склонен придерживаться строчного a-z, случайного числа и подчеркивания. Но, как сказал @Vince, это просто личное предпочтение.
Я нашел несколько ссылок на ошибки MySQL, которые либо были отмечены как закрытые, либо не могут воспроизводить символы подчеркивания. Насколько я знаю, проблем нет - я всегда использую символы подчеркивания для верблюжьего случая и не испытывал никаких проблем.
Единственная проблема, с которой я столкнулся, заключается в том, что при использовании mysqlshow для просмотра структуры таблицы кажется, что выражение подчеркивания является подстановочным знаком и возвращает только соответствующие имена таблиц, если есть символ подчеркивания в имени.
Я не мог найти никакого способа просмотра структуры таблицы таблицы, если в названии есть знак подчеркивания. Я только что открыл и подтвердил это сам сегодня утром.
Я знаю, что это относится к версиям MySQL версии 4.0.18 и 4.1.22 для более старых версий и 5.1.52 для более новых версий. Возможно, это где-то задокументировано (я еще не нашел времени, чтобы посмотреть еще), но это может показаться недоумением для других, поэтому я решил упомянуть об этом, когда я столкнулся с этим вопросом, когда сам искал информацию о проблеме.
Нет ничего плохого в использовании символов подчеркивания, но имейте в виду, что могут быть случаи, когда вам нужно избегать подчеркивания, например. My\_Table
Нет, это отлично. На самом деле, это наиболее рекомендуемое название из MySQL (на основе того, кого они называют своими внутренними таблицами!).
Помните, что в Microsoft Windows по умолчанию используется поведение MySQL в нижнем регистре ваших имен таблиц. Это может вызвать проблемы. Я не уверен, что вызывает это.
Однако я лично предпочитаю называть мои таблицы типа UserLikesPage
, User
и PostComment
, например, поскольку он отражает имя класса в моем коде и Я не использую Windows с MySQL > .
Вам следует избегать этого. Хотя это допустимый символ в документации MySQL, похоже, это может вызвать проблемы. Например, в MySQL 5.0 и 5.1 (и могут быть более поздние версии) кеш запросов никогда не попадает на запросы, содержащие имя таблицы, содержащее знак подчеркивания.
Нет, подчеркивания в базе данных никогда не вызывают никаких проблем. Мой опыт говорит, что лучше всего идентифицировать любые слова в столбце базы данных.
Если мы используем 'thisIsMyColumn' в качестве имени столбца, легко записать их, но 'this_is_my_column' как имя столбца более читабельны, чем предыдущий.
Нет проблем с использованием подчеркивания. Я думаю, что это просто личное предпочтение.
У меня никогда не было проблем с подчеркиванием при наименовании моих таблиц. Это просто личное предпочтение.
Многие инструменты визуализации базы данных, такие как SQuirreL SQL и DbVisualizer, также обрабатывают подчеркивание как подстановочный знак, группируя таблицы "сопоставление" с деревом. Например, таблица "document_a" и связанные таблицы "document_a_details", "document_a_history". В DbVisualizer в таблице "document_a" отображаются столбцы для всех трех таблиц.
Это, как правило, не проблема, но может ввести в заблуждение. Например, используя инструменты SQuirreL SQL для генерации ERD, объединяет столбцы из нескольких таблиц в одну таблицу и рисует коннекторы для отношений всех этих столбцов в ERD. Это приводит к отношениям, которые на самом деле не существуют.
По этой причине я не буду включать символы подчеркивания в имена таблиц.