За чистый и ясный код!

Статьи на тему программирования под веб, используя PHP, MySQL, Jquery и многое другое

Название БД и её таблиц (влияние регистра букв)

Январь13
Воспользуйтесь смс рассылкой для Вашего бизнеса.

Всем привет!

Могу поспорить о том, что многие программисты PHP ведут свои локальные разработки на компьютерах под управлением операционной системы семейства Windows (я сам такой, но об этом сильно жалею). И наверное никто и не задумывался написать название БД или её таблиц с большой буквы, сколько я встречал БД все они имеют формат слово_слово, по правилам MySQL они должны начинаться с буквы, могут иметь цифры и знак подчеркивания «_» и прочие знаки. Даже если обратится к документации MySQL, то видно, что и там также применяется подобный формат.

И мало ли кто задумывался о создании таблицы или БД с Большой буквы!!!! А надо было.

Если написать в Windows, что что таблица будет с большой буквы

CREATE TABLE `Test` (
	`id` INT(10) NULL AUTO_INCREMENT,
	PRIMARY KEY (`id`)
) COLLATE=utf8_general_ci ENGINE=MyISAM ROW_FORMAT=DEFAULT

то в файловой системе, где хранятся данные о таблице, сами файлы имеют такое же написание, как и название таблицы, т.е. НАЗВАНИЕ ТАБЛИЦЫ ВЛИЯЕТ НА НАЗВАНИЕ ФАЙЛА и ессно зависят от РЕГИСТРА. Получается, что при обращении к таблице из ОС Windows

SELECT * FROM `Test`;

или

SELECT * FROM `test`;

ответ будет правильным, нам MySQL возвратит какие-то данные, но не дай Боже написать второй запрос в ОС *nix подобных системах — сразу будет исключение! Догадались чего???? Конечно в ОС *nix создание файлов регистрозависимое, и когда мы в запросе пишем название таблицы отличное от созданного, то не находится такой файл и вылетает ОШИБКА!!!! Иногда приходится часы тратить не понимая какого у меня локально все зашибись, а на серваке по *nix все х…во. Да и вообще, если мы юзаем РНР, то и должны писать под ОС на которой будет выполняться код!!

А вот название полей пофиг какие будут буквы, также как и название операторов.

Изначально под виндой запрещено вводить большие буквы в название таблиц))), а вот иногда ну надо!!! Как же быть??

Воть! Все легко и просто — lower_case_table_names настраиваем и можем делать, что угодно.

Удачного, правильного и чистого подхода.

Статья просмотренна 52305 раз, зашло посетителей 18348

рубрика: MySQL

4 комментария в “Название БД и её таблиц (влияние регистра букв)”

  1. Avatar
    Snowcore пишет:

    Никогда не сталкивался с такой проблемой. Всегда использую имена таблиц в нижнем регистре. А почему ты используешь большие буквы? Требование со стороны заказчика?


  2. Avatar
    Максим Нагайченко пишет:

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


  3. Avatar
    Филипп пишет:

    Вообще регистрозависимость это чушь. Винда правильно сделала что ушла от этого. Уж столько в мире граблей расставлено благодаря сомнительной фиче


  4. Avatar
    maxnag пишет:

    Ну если посмотреть с точки зрения компьютера буква А и а всё же разные буквы….


не публикуется

пример

Оставить комментарий или два:

  

Облако тегов

cli csv dump events form Kohana locale models MySQL mysqldump orm PHP tools trigger validate газ газовый счетчик итоги кеширование переменные

Облако тегов плагина WP Cumulus для WordPress требует для просмотра Flash Player 9 или выше.

Я на твиттере!

  • у твиттера тоже бывают перерывы...

Календарь

Январь 2010
Пн Вт Ср Чт Пт Сб Вс
« Дек   Фев »
 123
45678910
11121314151617
18192021222324
25262728293031

Сейчас на сайте