Интересно, является ли это проблема, если имя таблицы или имя столбца содержат прописные буквы. Что-то позволяет мне полагать, что базы данных испытывают меньше затруднений, когда все сохранено нижним регистром. Это верно? Каким базам данных не нравится символ верхнего регистра в именах таблиц и именах столбцов?
Я должен знать, потому что моя платформа автоматически генерирует реляционную модель из модели ER.
(этот вопрос не о том, является ли это хорошим или плохим стилем, но только о том, если это - техническая проблема для любой базы данных),
Это не техническая проблема для базы данных, чтобы в названиях таблиц или столбцов были прописные буквы, для любого известного мне движка БД. Помните, что во многих реализациях БД используются регистрозависимые имена, поэтому всегда обращайтесь к таблицам и столбцам, используя тот же регистр, с которым они были созданы (я говорю в общем, так как вы не указывали конкретную реализацию).
Для MySQL есть некоторая интересная информация о том, как он обрабатывает регистр идентификатора. Есть несколько вариантов, которые можно задать, чтобы определить, как они хранятся внутри. http://dev.mysql.com/doc/refman/5.0/en/identifier-case-sensitivity.html
Насколько я знаю, нет никаких проблем с использованием заглавных и строчных букв. Одной из причин использования нижнего регистра является то, что запросы более читабельны с именами строчных таблиц и столбцов и ключевыми словами sql в верхнем регистре:
SELECT column_a, column_b FROM table_name WHERE column_a = 'test'
Стандарт SQL-92 определяет, что идентификаторы и ключевые слова нечувствительны к регистру (согласно Руководство по стандарту SQL 4-е издание, Дата / Дарвен)
Это не чтобы сказать, что конкретная СУБД не является (1) неисправной или (2) настраиваемой (и неработающей)
С точки зрения стиля программирования я предлагаю использовать разные случаи для ключевых слов и идентификаторов. Лично мне нравятся идентификаторы в верхнем регистре и ключевые слова в нижнем регистре, потому что они выделяют данные, которыми вы управляете.
Насколько я знаю, для обычного L.A.M.P. это не имеет особого значения, но имейте в виду, что MySQL, размещенный в Linux, чувствителен к регистру!
Чтобы мой код был аккуратным, я обычно использую строчные имена для таблиц и столбцов, MySQL-код в верхнем регистре и смешанные переменные верхнего и нижнего регистра - например:
SELECT * FROM my_table WHERE id = '$ myNewID'
Нет Современная база данных не может обрабатывать текст верхнего или нижнего регистра.