Подтвердить что ты не робот

Подчеркивают ли имена таблиц MySQL проблемы?

Подчеркивают ли имена таблиц влияющие на производительность или вызывают проблемы на некоторых платформах?

Например, user_profiles

Было бы лучше использовать userProfiles или это просто вопрос личных предпочтений?

4b9b3361

Ответ 1

Неа. Подписи подчеркивания являются законными в именах таблиц.

Эта страница здесь в документации по 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, это просто личное предпочтение.

Ответ 2

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

Ответ 3

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

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

Я знаю, что это относится к версиям MySQL версии 4.0.18 и 4.1.22 для более старых версий и 5.1.52 для более новых версий. Возможно, это где-то задокументировано (я еще не нашел времени, чтобы посмотреть еще), но это может показаться недоумением для других, поэтому я решил упомянуть об этом, когда я столкнулся с этим вопросом, когда сам искал информацию о проблеме.

Ответ 4

Нет ничего плохого в использовании символов подчеркивания, но имейте в виду, что могут быть случаи, когда вам нужно избегать подчеркивания, например. My\_Table

Ответ 5

Нет, это отлично. На самом деле, это наиболее рекомендуемое название из MySQL (на основе того, кого они называют своими внутренними таблицами!).

Помните, что в Microsoft Windows по умолчанию используется поведение MySQL в нижнем регистре ваших имен таблиц. Это может вызвать проблемы. Я не уверен, что вызывает это.

Однако я лично предпочитаю называть мои таблицы типа UserLikesPage, User и PostComment, например, поскольку он отражает имя класса в моем коде и Я не использую Windows с MySQL > .

Ответ 6

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

Ответ 7

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

Если мы используем 'thisIsMyColumn' в качестве имени столбца, легко записать их, но 'this_is_my_column' как имя столбца более читабельны, чем предыдущий.

Ответ 8

Нет проблем с использованием подчеркивания. Я думаю, что это просто личное предпочтение.

Ответ 9

У меня никогда не было проблем с подчеркиванием при наименовании моих таблиц. Это просто личное предпочтение.

Ответ 10

Многие инструменты визуализации базы данных, такие как SQuirreL SQL и DbVisualizer, также обрабатывают подчеркивание как подстановочный знак, группируя таблицы "сопоставление" с деревом. Например, таблица "document_a" и связанные таблицы "document_a_details", "document_a_history". В DbVisualizer в таблице "document_a" отображаются столбцы для всех трех таблиц.

Это, как правило, не проблема, но может ввести в заблуждение. Например, используя инструменты SQuirreL SQL для генерации ERD, объединяет столбцы из нескольких таблиц в одну таблицу и рисует коннекторы для отношений всех этих столбцов в ERD. Это приводит к отношениям, которые на самом деле не существуют.

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