Я работаю над схемой базы данных и пытаюсь принять некоторые решения относительно имен таблиц. Мне нравятся, по крайней мере, несколько описательных имен, но затем, когда я использую предложенные соглашения об именах внешних ключей, результат кажется смешным. Рассмотрим этот пример:
Предположим, у меня есть таблица
session_subject_mark_item_info
И у него есть внешний ключ, который ссылается на
sessionSubjectID
в
session_subjects
таблица.
Теперь, когда я создаю имя внешнего ключа на основе fk_ [referencing_table] __ [referenced_table] _ [field_name], я получаю следующее:
fk_session_subject_mark_item_info__session_subjects_sessionSubjectID
Не вызовет ли этот тип имени внешнего ключа проблемы в будущем, или это довольно часто встречается?
Кроме того, как более опытные разработчики баз данных справляются с конфликтом между описательным наименованием для удобства чтения и получающимися длинными именами?
Я использую MySQL и MySQL Workbench, если это что-то меняет.
UPDATE
Получил ответы, которые мне нужны ниже, но я хотел бы упомянуть, что после некоторого тестирования я обнаружил, что MySQL имеет ограничение на длину имени FK. Таким образом, использование соглашения об именах, которое я упомянул, и описательных имен таблиц означало, что в двух случаях в моей БД мне пришлось сокращать имена, чтобы избежать ошибки MySQL 1059
http://dev.mysql.com/doc/refman/5.1/en/error-messages-server.html#error_er_too_long_ident