Я работаю над веб-приложением для класса.По сути, это система управления проектами, похожая на разбавленную версию Bugzilla, но специально разработанная для академической среды.Одним из требований является то, что для ряда настроек (таких как тип проекта, который может быть магистерским проектом, кандидатская диссертация и т. Д.) Списки возможных значений можно настраивать.Таким образом, будет страница конфигурации или настройки, на которой вы сможете изменить значения в каждом списке, но тогда в остальной части приложения (например, при создании проекта или задачи) значения в списке будут единственными вариантами выбора.Также, если вы измените одно из значений (скажем, из магистерской работы в магистерскую диссертацию), все записи, использующие это значение, также должны измениться.Таким образом, все проекты, помеченные как магистерская работа, теперь будут отмечены как магистерская работа.
Я использую HSQLDB для хранения данных, а приложение написано полностью на Java (JDBC, JavaServlets, JSP).
Мне трудно понять, как справиться с этим требованием с точки зрения дизайна.Во-первых, как мне сохранить эти списки в базе данных?Будет ли каждый список своей таблицей?Кажется неправильным иметь каждый список в виде столбца в одной таблице (не будет ли это нарушать правила нормализации?).Я не очень знаком с дизайном базы данных, но поиск в Google не нашел хорошего решения для этого.
Во-вторых, как мне обращаться с этими списками в моем коде?Я думал об использовании статических переменных (коллекций некоторого вида) в связанных классах, потому что эти настройки должны быть глобальными, а не специфичными для одного пользователя или проекта.Это, как правило, не считается хорошим дизайном.
Любые рекомендации будут с благодарностью.Я хочу, чтобы дизайн был правильным не только потому, что это урок по разработке программного обеспечения, поэтому дизайн важен, но и потому, что я могу в конечном итоге расширить этот проект в магистерский проект.