java 1.5: Как лучше всего сохранить константы для имен столбцов таблиц БД?

Технологии: - 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 и если его рекомендуется использовать в данном сценарии.

  • Какова наилучшая практика для данного определения констант БД?

  • Действительно ли полезно использовать константы БД?

  • Если я использую один класс для каждой таблицы, как указано выше, один Проблема, с которой я сталкиваюсь, - это соглашение об именах. Какой должна быть связь между именем таблицы и именем соответствующего класса, которые определяют константы для столбцов таблицы.

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

  • Часто утверждают, что имя таблицы и имена столбцов не сильно меняются после выпуска продукта или связанной версии. Изменения в имени таблицы и имени столбца происходят в основном на этапе разработки или улучшения функции (новая версия). Является ли веским аргументом избегать использования констант для имен таблиц или столбцов?

    Подскажите, пожалуйста, как я могу сделать свой вопрос более представительным или что мне не хватает, чтобы мои вопросы не голосовали?

7
задан Maddy.Shik 17 December 2010 в 18:37
поделиться