Технологии: - Java 1.5 или 1.6 - Hibernate 3.4
Чтобы избежать обновления имени столбца в нескольких местах при изменении имени столбца или имени таблицы, я хочу иметь для него постоянный файл.
У меня есть следующие запросы?
Одно из возможных решений - сохранить один глобальный файл, в котором хранятся константы для имен столбцов всех таблиц в базе данных. как
класс DbConstants
{
общедоступная статическая конечная строка EMPLOYEE__PERFORMANCE_DESC = "performance_desc";
}
В приведенном выше случае сотрудники - это имя таблицы, а performance_desc - имя столбца. Таким образом, вид формата tablename__columnname используется для наименования константы, чтобы избежать столкновения между двумя константами из двух разных таблиц, если обе имеют имя столбца.
Я вижу одну проблему с этим подходом, что по мере роста базы данных никакие константы в этом файле не будут вырасти до тысяч, что трудно контролировать. Другая проблема заключается в том, что если имя таблицы изменяется, мне нужно изменить имя таблицы префиксов для всех таблиц.
Предположим, если я изменю имя столбца в приведенном выше примере с performance_desc на results_desc. В этом случае очень вероятно, что я захочу также изменить константу, т.е. с EMPLOYEE__PERFORMANCE_DESC на EMPLOYEE__ACHIEVEMENT_DESC. Поскольку в этом случае мне нужно было изменить имя столбца и имя константы, я не Похоже, либо использование констант не особо полезно, либо я использую их неправильно.
В коде проекта мне кажется, что люди определяют один класс для каждого списка столбцов таблицы для определения констант, как показано ниже.
public class tbl_Employee
{
публичный статический финал PERFORMANCE_DESC = performance_desc;
}
это может решить некоторые проблемы с глобальным файлом, например, изменение имени таблицы приведет только к изменению имени класса. Одна из основных проблем заключается в том, что я использую класс исключительно для определения констант, что не является хорошей практикой кодирования.
Прочтите кое-где о Enum со строкой значения, а не с int, не уверен, доступен ли он в java 1.5 или 1.6 и если его рекомендуется использовать в данном сценарии.
Какова наилучшая практика для данного определения констант БД?
Действительно ли полезно использовать константы БД?
Если я использую один класс для каждой таблицы, как указано выше, один Проблема, с которой я сталкиваюсь, - это соглашение об именах. Какой должна быть связь между именем таблицы и именем соответствующего класса, которые определяют константы для столбцов таблицы.
Вышеупомянутые случаи охватывают регистр только для имен столбцов, а не для имени таблицы. Я могу использовать в коде константу, а не имя таблицы, поэтому какой подход должен быть для определения констант для имен таблиц.
Часто утверждают, что имя таблицы и имена столбцов не сильно меняются после выпуска продукта или связанной версии. Изменения в имени таблицы и имени столбца происходят в основном на этапе разработки или улучшения функции (новая версия). Является ли веским аргументом избегать использования констант для имен таблиц или столбцов?
Подскажите, пожалуйста, как я могу сделать свой вопрос более представительным или что мне не хватает, чтобы мои вопросы не голосовали?