|
|
|
Синхронизировать справочник в коде и справочник в БД
|
|||
|---|---|---|---|
|
#18+
Всем привет! Столкнулся со следующей ситуацией, что у нас есть справочники в Java коде (представлены могут быть по разному, как правило final static константы или enum'ы) и есть соответствующая таблица справочник в БД, и как ни крути они нужны и тут и там. Подскажите, встречается ли в вашей практике такие ситуации? Используете какие-либо механизмы валидации/автоматической синхронизации, что справочник в коде совпадает со справочником в БД? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2016, 13:50 |
|
||
|
Синхронизировать справочник в коде и справочник в БД
|
|||
|---|---|---|---|
|
#18+
just_vladimirи как ни крути они нужны и тут и там а данные из БД не нужны и тут и там? just_vladimirсправочник в коде покажи ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2016, 13:57 |
|
||
|
Синхронизировать справочник в коде и справочник в БД
|
|||
|---|---|---|---|
|
#18+
just_vladimir, Если справочник в БД, то константы в коде идут лесом. Всё просто же. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2016, 14:02 |
|
||
|
Синхронизировать справочник в коде и справочник в БД
|
|||
|---|---|---|---|
|
#18+
Blazkowiczjust_vladimir, Если справочник в БД, то константы в коде идут лесом. Всё просто же. Дак вот что то пока плохо себе представляю как их лесом то отправить, вот есть код, в котором switch/case или просто какая-нибудь конструкция на базе if/else, что мне с ней делать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2016, 14:13 |
|
||
|
Синхронизировать справочник в коде и справочник в БД
|
|||
|---|---|---|---|
|
#18+
just_vladimirДак вот что то пока плохо себе представляю как их лесом то отправить, вот есть код, в котором switch/case или просто какая-нибудь конструкция на базе if/else, что мне с ней делать? Железная линейка + HashMap<Value, Action> ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2016, 14:15 |
|
||
|
Синхронизировать справочник в коде и справочник в БД
|
|||
|---|---|---|---|
|
#18+
Ну в самом тупом случае, мне нужно с каждой записью (строчке в таблице, элементе в графе, да где угодно) сопоставить некоторую иконку, которая определяется типом элемента, типы элемента это записи в таблице справочнике, какие будут предложения на этот счет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2016, 14:16 |
|
||
|
Синхронизировать справочник в коде и справочник в БД
|
|||
|---|---|---|---|
|
#18+
just_vladimirНу в самом тупом случае, мне нужно с каждой записью (строчке в таблице, элементе в графе, да где угодно) сопоставить некоторую иконку, которая определяется типом элемента, типы элемента это записи в таблице справочнике, какие будут предложения на этот счет? запись_в_таблице.svg ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2016, 14:17 |
|
||
|
Синхронизировать справочник в коде и справочник в БД
|
|||
|---|---|---|---|
|
#18+
Blazkowiczjust_vladimirНу в самом тупом случае, мне нужно с каждой записью (строчке в таблице, элементе в графе, да где угодно) сопоставить некоторую иконку, которая определяется типом элемента, типы элемента это записи в таблице справочнике, какие будут предложения на этот счет? запись_в_таблице.svg Ну так себе решение, а если для одного типа мне нужен один перечень пунктов контекстного меню, а для другого типа другой перечень пунктов контекстного меню? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2016, 14:21 |
|
||
|
Синхронизировать справочник в коде и справочник в БД
|
|||
|---|---|---|---|
|
#18+
just_vladimirНу так себе решение, а если для одного типа мне нужен один перечень пунктов контекстного меню, а для другого типа другой перечень пунктов контекстного меню? Это БЛ, а не справочник. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2016, 14:25 |
|
||
|
Синхронизировать справочник в коде и справочник в БД
|
|||
|---|---|---|---|
|
#18+
just_vladimirНу так себе решение, а если для одного типа мне нужен один перечень пунктов контекстного меню, а для другого типа другой перечень пунктов контекстного меню? По-хорошему вы заводите класс, на каждую запись в базе. Внутри класса есть ключ, который однозначно ассоциируется с записью в БД. Ключ, очевидно, нужно использовать натуральный, а не синтетический. Во время запуска находите все такие классы и складываете в Map. Для тех кто использует if/else и switch с такими словарями и нужна железная линейка. Для каждой новой записи в БД, вам придется искать все такие условия по коду и добавлять в них блоки. Вместо того чтобы написать 1 новый класс с логикой нового элемента. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2016, 14:51 |
|
||
|
Синхронизировать справочник в коде и справочник в БД
|
|||
|---|---|---|---|
|
#18+
BlazkowiczВнутри класса есть ключ, который однозначно ассоциируется с записью в БД. Ключ, очевидно, нужно использовать натуральный, а не синтетический. Во время запуска находите все такие классы и складываете в Map. Ну вот мы и пришли к тому, с чего начали, у нас есть ключ внутри класса и есть запись в БД, за синхронность которых я и переживаю. Про то, что он в идеале должен быть натуральным это согласен, тогда вероятность проблемы становится гораздо ниже, но, к сожалению, не всегда так получается сделать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2016, 15:08 |
|
||
|
Синхронизировать справочник в коде и справочник в БД
|
|||
|---|---|---|---|
|
#18+
just_vladimirПро то, что он в идеале должен быть натуральным это согласен, тогда вероятность проблемы становится гораздо ниже, но, к сожалению, не всегда так получается сделать. А что там переживать? При инициализации, собрали Map, сравнили с БД и дальше по вашей бизнес-логие: fault, warning или email админу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2016, 15:15 |
|
||
|
Синхронизировать справочник в коде и справочник в БД
|
|||
|---|---|---|---|
|
#18+
BlazkowiczА что там переживать? При инициализации, собрали Map, сравнили с БД и дальше по вашей бизнес-логие: fault, warning или email админу. ок, спасибо, вариант понял, валидация на старте приложения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2016, 15:21 |
|
||
|
Синхронизировать справочник в коде и справочник в БД
|
|||
|---|---|---|---|
|
#18+
just_vladimirза синхронность которых я и переживаю. Как сказать. Стандартная работа программиста. Например, когда я ввожу новый тип в БД под кодом 12345 и в VIEW прописал иконку delete.gif на этот тип, то понятно, что если я забуду закинуть на веб сервер иконку, то ошибок и райзе не будет. Такой уж у нас JS. Поэтому я просто помню и должен это прописать и проверить\протестировать. Потом отдел тестирования. ... Автомат тут не поможет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2016, 15:26 |
|
||
|
Синхронизировать справочник в коде и справочник в БД
|
|||
|---|---|---|---|
|
#18+
just_vladimirок, спасибо, вариант понял, валидация на старте приложения. Ну, тут важно понимать откуда наполняется справочник и где он первичен, а где вторичен. Например, если БД его особо не использует, вы можете наполнять справочник из кода при той же инициализации. И тогда в коде можно иметь полноценный Enum. Но не зная требований сложно сказать какое решение подходит именно в вашей ситуации. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2016, 16:40 |
|
||
|
Синхронизировать справочник в коде и справочник в БД
|
|||
|---|---|---|---|
|
#18+
just_vladimirИспользуете какие-либо механизмы валидации/автоматической синхронизации, что справочник в коде совпадает со справочником в БД? Мы использовали самописный maven-плагин который обновлял Java-код модуля на основании данных из БД. Сорцов дать не могу (сорян) но решение не эксклюзивное. Думаю таких много. Погуглите. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2016, 22:56 |
|
||
|
|

start [/forum/topic.php?fid=59&fpage=83&tid=2123501]: |
0ms |
get settings: |
10ms |
get forum list: |
17ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
28ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
49ms |
get tp. blocked users: |
1ms |
| others: | 213ms |
| total: | 339ms |

| 0 / 0 |
