|
|
|
Хранение общих параметров системы.
|
|||
|---|---|---|---|
|
#18+
Интересуюсь, как или где грамотно хранить параметры общего назначения. Например, есть у меня потребность в опции проекта, которая хранит признак использования debug-режима, в этом режиме я журналирую (логирую) прохождение процедур. Во всех местах кода, где нужно сделать запись в журнал я проверяю состояние этой опции и делаю выводы о режиме который установлен на данный момент. С целью хранения таких глобальных параметров я создал таблицу с полями Name, numValue, strValue. Name - наименование опции (DebugMode), numValue - числовое значение, strValue - строковое значение Выражение для получения нужного значения такое: Код: plaintext Но может быть имеются более грамотные или даже стандартные решения по этому вопросу? P.S. Знчения опций естественно можно изменять. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.02.2008, 12:42 |
|
||
|
Хранение общих параметров системы.
|
|||
|---|---|---|---|
|
#18+
RangilНо может быть имеются более грамотные По моему крайнему разумению, параметр в Вашем примере, во-первых, должен настраиваться в рамках сессии (логина), а, во-вторых, сбрасываться в случае повторного подключения, падения сервера и т.п. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.02.2008, 14:12 |
|
||
|
Хранение общих параметров системы.
|
|||
|---|---|---|---|
|
#18+
Сергей Васкецов RangilНо может быть имеются более грамотные По моему крайнему разумению, параметр в Вашем примере, во-первых, должен настраиваться в рамках сессии (логина), а, во-вторых, сбрасываться в случае повторного подключения, падения сервера и т.п. +1 ЗЫ. Как упрощают задачу хакерам - поставил флаг, и вся отладка у тебя наладони :) ЗЫ.ЗЫ. - есть переменная пакета, актуальная на сессию. - есть контекст-строки формируемые с клиента - есть защиты на оба метода выше, чтобы не лазить кому попало. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.02.2008, 15:23 |
|
||
|
Хранение общих параметров системы.
|
|||
|---|---|---|---|
|
#18+
Параметры могут быть системы в целом, а также зависеть от конкретного пользователя, конкретного периода, функционального блока (логического АРМа), и каких-то еще специфических для приложения вещей, сотавляющих текущий контекст. Речь конечно о параметрах, значения которых должны переживать сессию. Например, настройка визуального интерфейса. С отладкой - не очень удачный пример. Кроме того, можно дать возможность один параметр задавать с призвольным набором признаков - для системы в целом или для пользователя, или ... и определить правила умолчаний. т.е. получается структура типа: Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.02.2008, 16:42 |
|
||
|
Хранение общих параметров системы.
|
|||
|---|---|---|---|
|
#18+
я бы выделил так типы параметров: - сервисные для удобства USER (ширина колонок, порядок полей, первый запуск проги = Help, ....) - сервисные для удобства ALL USER (список отчётов на систему в целом, параметры "кочующего пользователя с компа на комп") Первые лучше хранить в HKEY_USER - реестра. Тогда автоматом у каждого свои настройки и нет в БД помойки незначительных параметров. Вторые в БД. IMHO ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.02.2008, 18:01 |
|
||
|
Хранение общих параметров системы.
|
|||
|---|---|---|---|
|
#18+
Petro123Первые лучше хранить в HKEY_USER - реестра Еще чего не хватало. Пользователь только с одного места может работать? А если это КПК? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.02.2008, 18:03 |
|
||
|
Хранение общих параметров системы.
|
|||
|---|---|---|---|
|
#18+
я бы тоже не стал хранить общие параметры приложения в БД. Для этого есть более подходящие места - файлы конфигураци (xml, ini), файлы пользовательских профилей. При этом для различных платформ существуют удобные классы для работы с ними (для .net, например, модель провайдеров и ее реализации для различных аспектов). В БД значения передают либо через параметры хп и запросов, либо установкой в контекст (set context_info в mssql). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.02.2008, 00:19 |
|
||
|
Хранение общих параметров системы.
|
|||
|---|---|---|---|
|
#18+
Сергей Васкецов Petro123Первые лучше хранить в HKEY_USER - реестра Еще чего не хватало. Пользователь только с одного места может работать? А если это КПК? всё хорошо в меру. А если это параметр - размер формы в пикселях? :)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.02.2008, 09:19 |
|
||
|
Хранение общих параметров системы.
|
|||
|---|---|---|---|
|
#18+
Роман Дынникесть более подходящие места - файлы конфигураци (xml, ini) Осталось найти множество существенных отличий между чтением файла xml и поля xml из БД. Не хочу вдаваться в подробности, но как практик, предпочитаю параметры, не связанные непосредственно с рабочим местом, хранить все же в БД по ряду причин. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.02.2008, 12:26 |
|
||
|
Хранение общих параметров системы.
|
|||
|---|---|---|---|
|
#18+
ModelR Например, настройка визуального интерфейса. С отладкой - не очень удачный пример.Дело в том, что я применяю отладку именно для серверного механизма. Другие примеры - версия копии продукта, параметры алгоритмов, использующих объекты базы. ModelRКроме того, можно дать возможность один параметр задавать с призвольным набором признаков - для системы в целом или для пользователя, или ... и определить правила умолчаний. т.е. получается структура типа: Код: plaintext 1. Param (ID, name, type) - здесь интерес представляет type. Если это поле типа патаметра (string, number, date), то где само значение и в поле какого типа его хранить? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.02.2008, 17:25 |
|
||
|
Хранение общих параметров системы.
|
|||
|---|---|---|---|
|
#18+
Rangil ModelRКроме того, можно дать возможность один параметр задавать с призвольным набором признаков - для системы в целом или для пользователя, или ... и определить правила умолчаний. т.е. получается структура типа: Код: plaintext 1. Param (ID, name, type) - здесь интерес представляет type. Если это поле типа патаметра (string, number, date), то где само значение и в поле какого типа его хранить? Ну да, тип. Значения - в ParamVal. Как хранить по типам у Вас уже решено: Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.02.2008, 17:38 |
|
||
|
Хранение общих параметров системы.
|
|||
|---|---|---|---|
|
#18+
Сергей Васкецов Роман Дынникесть более подходящие места - файлы конфигураци (xml, ini) Осталось найти множество существенных отличий между чтением файла xml и поля xml из БД. Не хочу вдаваться в подробности, но как практик, предпочитаю параметры, не связанные непосредственно с рабочим местом, хранить все же в БД по ряду причин. Посудите сами. Если хранить параметры в файле (даже жёсто связанным с сервером БД), доступ к которому возможен даже при остановленном сервере БД, то это даст возможность алгоритмам прочитать их и сделать попытку выполнения дальнейших действий. Остается надеятся, что не произойдет зависания клиента, выполняющего алгоритм. Если же те же параметры будут находится на сервере БД, то клиент не сможет даже соединится с ним не говоря уже о чтении параметров и произойдет предупреждение клиента о невозможности соединения с сервером БД. Это инкапсуляция данных для работы с серверными алгоритмами и общесистемных данных, которые будут использоваться серверными объектами. Как класс в языках программирования. У меня есть один проект, в котором разделение хранимых данных между сервером и клиентом происходит на уровне атрибутов сущностей системы. Т.е. у "детали" есть "длина, ширина, материал" - на сервере, а есть параметры для операций над этими мтерилами - на каждом клиенте разне. Тут и применяю xml. Вопрос не в том хранить на сервере или на клиенте, а в том как удобнее (универсальнее) хранить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.02.2008, 17:50 |
|
||
|
Хранение общих параметров системы.
|
|||
|---|---|---|---|
|
#18+
ModelRНу да, тип. Значения - в ParamVal. Код: plaintext 1. Я просто взял и наобум так сделал, думая что потом разберусь. Так и прижилось. А со временем разраслось. А вот теперь настал "потом". И хочу узнать практикуют ли такое решение другие? Хранят ли параметры в базе? И как работают с ними? Может создают тип, который при старте сервера наполняет порожденный объект данными из базы прватными процедурами? А затем проще работать с этим объектом. Никто про такое ничего не слышал? Или использовал? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.02.2008, 18:05 |
|
||
|
Хранение общих параметров системы.
|
|||
|---|---|---|---|
|
#18+
RangilВопрос не в том хранить на сервере или на клиенте, а в том как удобнее (универсальнее) хранить. Нееет... вопрос в характере параметров, а удобноство здесь далеко не на первом плане. Если это параметры, относящиеся к данным - их место в БД (например, основная валюта компании) Если это параметры, относящиеся к сервисному уровню, уровню приложения - их место в файлах. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.02.2008, 20:21 |
|
||
|
Хранение общих параметров системы.
|
|||
|---|---|---|---|
|
#18+
Сергей Васкецов Осталось найти множество существенных отличий между чтением файла xml и поля xml из БД. Не хочу вдаваться в подробности, но как практик, предпочитаю параметры, не связанные непосредственно с рабочим местом, хранить все же в БД по ряду причин. Ну пусть это пользователь попробует, не имея под рукой QA/UI и если вдруг пропал доступ к серверу БД, прочитать и поправить xml-поле в БД:) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.02.2008, 20:25 |
|
||
|
Хранение общих параметров системы.
|
|||
|---|---|---|---|
|
#18+
RangilЕсли хранить параметры в файле (даже жёсто связанным с сервером БД), доступ к которому возможен даже при остановленном сервере БД, то это даст возможность алгоритмам прочитать их и сделать попытку выполнения дальнейших действий. Сначала - логин к БД, потом всё остальное, включая запуск любых других алгоритмов, если нет логина - работа клиента бессмысленна, и это даже не имхо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.03.2008, 02:40 |
|
||
|
Хранение общих параметров системы.
|
|||
|---|---|---|---|
|
#18+
Добавлю немного (можут быть чуть в сторону). Полезно в структуру для хранения таких параметров системы включать поле, в котором хранить скрипт для задания допустимых значений параметра. Например для режима отладки: Код: plaintext 1. 2. 3. 4. Код: plaintext 1. 2. Получается достаточно удобно и универсально. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2008, 15:34 |
|
||
|
Хранение общих параметров системы.
|
|||
|---|---|---|---|
|
#18+
Роман Дынник Сергей Васкецов Осталось найти множество существенных отличий между чтением файла xml и поля xml из БД. Не хочу вдаваться в подробности, но как практик, предпочитаю параметры, не связанные непосредственно с рабочим местом, хранить все же в БД по ряду причин. Ну пусть это пользователь попробует, не имея под рукой QA/UI и если вдруг пропал доступ к серверу БД, прочитать и поправить xml-поле в БД:)Он должен догадаться позвонить в техподдержку по мобильнику вынув батарейку:). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2008, 15:02 |
|
||
|
Хранение общих параметров системы.
|
|||
|---|---|---|---|
|
#18+
egorychСначала - логин к БД, потом всё остальное, включая запуск любых других алгоритмов, если нет логина - работа клиента бессмысленна, и это даже не имхо Есть приложения, где пользователь должен выбирать БД к которой он хочет подключиться из списка. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2008, 20:22 |
|
||
|
Хранение общих параметров системы.
|
|||
|---|---|---|---|
|
#18+
Роман Дынник egorychСначала - логин к БД, потом всё остальное, включая запуск любых других алгоритмов, если нет логина - работа клиента бессмысленна, и это даже не имхо Есть приложения, где пользователь должен выбирать БД к которой он хочет подключиться из списка.и в какой БД ЭТУ информацию можно хранить? немного не по теме замечание, не находите? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2008, 21:25 |
|
||
|
Хранение общих параметров системы.
|
|||
|---|---|---|---|
|
#18+
egorych Роман Дынник egorychСначала - логин к БД, потом всё остальное, включая запуск любых других алгоритмов, если нет логина - работа клиента бессмысленна, и это даже не имхо Есть приложения, где пользователь должен выбирать БД к которой он хочет подключиться из списка.и в какой БД ЭТУ информацию можно хранить? немного не по теме замечание, не находите? тема - общие параметры СИСТЕМЫ. Несмотря на то, что форум по БД ---> БД это не система. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.03.2008, 09:17 |
|
||
|
Хранение общих параметров системы.
|
|||
|---|---|---|---|
|
#18+
Petro123 egorych Роман Дынник egorychСначала - логин к БД, потом всё остальное, включая запуск любых других алгоритмов, если нет логина - работа клиента бессмысленна, и это даже не имхо Есть приложения, где пользователь должен выбирать БД к которой он хочет подключиться из списка.и в какой БД ЭТУ информацию можно хранить? немного не по теме замечание, не находите? тема - общие параметры СИСТЕМЫ. Несмотря на то, что форум по БД ---> БД это не система.тема: "ХРАНЕНИЕ общих параметров системы", обратите внимание, и тред перечитайте внимательно, о каких параметрах и о каких местах их хранения идёт речь. Лады? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.03.2008, 11:00 |
|
||
|
Хранение общих параметров системы.
|
|||
|---|---|---|---|
|
#18+
Роман Дынник Сергей Васкецов Осталось найти множество существенных отличий между чтением файла xml и поля xml из БД. Не хочу вдаваться в подробности, но как практик, предпочитаю параметры, не связанные непосредственно с рабочим местом, хранить все же в БД по ряду причин. Ну пусть это пользователь попробует, не имея под рукой QA/UI и если вдруг пропал доступ к серверу БД, прочитать и поправить xml-поле в БД:) Не вижу вообще необходимости, если у пользователя пропал доступ к БД, давать ему возможность что-то делать в обход системы, так как "вдруг" обычно доступ не пропадает. Расшифрую насчет "практика". Я прежде всего имею в виду ситуацию, когда для анализа какой-либо неисправности необходимо иметь полную копию окружения, в котором работает пользователь, а также сохранять и восстанавливать данное окружение дампами. Иметь отдельные файлы для настроек в такой ситуации крайне неудобно по сравнению с хранением информации, пусть даже относящейся исключительно к конкретному пользователю, в рабочей БД. Также при хранении в БД настроек окружения пользователя повышается удобство работы с такими "профилями", так как можно выполнять настройку "профиля по умолчанию", произвольное "копирование" (в том числе и частичное, отдельных элементов) таких "профилей", автоматическое обновление данных в "профилях" при обновлении системы, разграничение прав доступа к атрибутам "профилей", и т.п., что куда более сложно в случае расположения "профилей" в файлах где попало. ModelRОн должен догадаться позвонить в техподдержку по мобильнику вынув батарейку:). Не очень понял смысл фразы. Это что-то типа "поздно пить боржоми"? RangilПосудите сами. Если хранить параметры в файле (даже жёсто связанным с сервером БД), доступ к которому возможен даже при остановленном сервере БД, то это даст возможность алгоритмам прочитать их и сделать попытку выполнения дальнейших действий. Остается надеятся, что не произойдет зависания клиента, выполняющего алгоритм. Если же те же параметры будут находится на сервере БД, то клиент не сможет даже соединится с ним не говоря уже о чтении параметров и произойдет предупреждение клиента о невозможности соединения с сервером БД. Это инкапсуляция данных для работы с серверными алгоритмами и общесистемных данных, которые будут использоваться серверными объектами. Как класс в языках программирования. Почти ничего не понял из написанного Вами. Можете перевести это на русский язык? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.03.2008, 13:09 |
|
||
|
Хранение общих параметров системы.
|
|||
|---|---|---|---|
|
#18+
Сергей Васкецов Также при хранении в БД настроек окружения пользователя повышается удобство работы с такими "профилями", так как можно выполнять настройку "профиля по умолчанию", произвольное "копирование" (в том числе и частичное, отдельных элементов) таких "профилей", автоматическое обновление данных в "профилях" при обновлении системы, разграничение прав доступа к атрибутам "профилей", и т.п., что куда более сложно в случае расположения "профилей" в файлах где попало. не где попало, а в реестре (тоже не где попало). Предпочитаю, параметры, не имеющие отношения к бизнес-функционалу - не сваливать в БД как на свалку. Всё вышеописанное - смахивает на велосипедостроение, либо крутое и дорогое ТЗ IMHO. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.03.2008, 13:34 |
|
||
|
Хранение общих параметров системы.
|
|||
|---|---|---|---|
|
#18+
Petro123не где попало, а в реестре (тоже не где попало) Вы не до конца разобрались в том "велисипедостроении", которое поспешили охаять. Это действительно "крутое и дорогое ТЗ" с развитой логикой работы с профилями пользователей в части бизнес-приложений, поддерживающих централизованную работу с тысячами пользователей. Стиуация. Натягивается обновление на систему в виде патча, меняющего только данные в БД (скрипт). Кроме самих данных необходимо изменить соответствующим образом "профили" всех юзеров, чтобы они также соответствовали новой версии. В моем случае это делается скриптом, который понятия не имеет, какие реестры ему надо править и на скольких рабочих местах, скрипт выполняется один раз в рабочей БД. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.03.2008, 13:48 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=35165643&tid=1543999]: |
0ms |
get settings: |
7ms |
get forum list: |
14ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
165ms |
get topic data: |
6ms |
get forum data: |
1ms |
get page messages: |
33ms |
get tp. blocked users: |
1ms |
| others: | 203ms |
| total: | 434ms |

| 0 / 0 |
