Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.04.27;
Скачать: CL | DM;

Вниз

хранение пользовательских настроек программы в БД. идеология   Найти похожие ветки 

 
ari_9   (2007-11-29 12:29) [0]

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

вопрос не в том, как можно сделать - я сам вижу много вариантов, а как сделать правильно

пока предполагаю так:

таблица Parameters
поля
Parameter_ID
Parameter_Parental_ID
Parameter_Name
Parameter_Type
Parameter_Visible

Таблица Users_Parameters
поля
User_ID
Parameter_ID
Parameter_Value - VARCHAR

настройки, используемые мной и не показываемые пользователю: связаны с программными компонентами только по ID, эти ID жестко заданы мной и в коде проекта, и в БД (это несколько напрягает). поле Parameter_Name смысловой нагрузки не несет. загружаю и пишу их из/в Users_Parameters, там где нужно выполнить преобразование типов, беру Parameter_Type из Parameters

настройки, задаваемые пользователем: у пользователя рисую дерево на основе Parameters, куда входят все ветки с Parameter_Visible = 1 и с родительскими Parameter_Visible = 1. редактировать в дереве не позволяю, по клику открываю окошко с параметром (заодно в зависимости от Parameter_Type выставляю маску дбэдита, пишу данные в Users_Parameters)

что не нравится в этой схеме :
1. если како-то парметр у меня задается пользователем не в общем окне настроек, а где-то в других формах (ну, например, последняя строка поиска), то много повторяющегося кода типа параметр с ID равным Tag"у компонета подгрузить, параметр записать ...
2. слишком много данных из БД оказывается внутри кода (ID всех параметров)
3. если понадобится в будущем дать пользователю возможность добавлять свои настройки (а не только редактировать параметры заданных разработчиком), не ясно как это сделать красиво

думаю, такую задачу решали многие, интересно было бы знать к чему пришли в итоге


 
Sergey13 ©   (2007-11-29 12:45) [1]

> [0] ari_9   (29.11.07 12:29)
> 3. если понадобится в будущем дать пользователю возможность
> добавлять свои настройки

Это как? А кто их обрабатывать будет? ИИ?


 
Sergey13 ©   (2007-11-29 12:51) [2]

Вместо Parameter_ID и Parameter_Name (которые "смысловой нагрузки не несет"), я бы сделал Parameter_CODE и присваивал бы ему осмысленные значения. ИМХО значительно улучшит читаемость кода и не даст самому запутаться.


 
ari_9   (2007-11-29 13:13) [3]

Sergey13

Parameter_CODE это хорошо, да. подумаю. единственный минус, придется его в коде писать руками, а не в дизайнере на тэги развешивать

Это как? А кто их обрабатывать будет? ИИ?

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


 
Sergey13 ©   (2007-11-29 13:36) [4]

> [3] ari_9   (29.11.07 13:13)
> естественно, пользователь может добавить пару код-домен.

Ну так это вроде как присваивание значения существующему параметру, про который твоя прога знает. А я понял твой 3 пункт именно как создание новых, неизвестных программе настроек, типа "а не заколбасить ли нам зеленую полосу на главной форме".


 
Anatoly Podgoretsky ©   (2007-11-29 14:24) [5]

> Sergey13  (29.11.2007 13:36:04)  [4]

Это тоже можно, только потом разработчик должен разработать обработчик.


 
Sergey13 ©   (2007-11-29 14:41) [6]

> [5] Anatoly Podgoretsky ©   (29.11.07 14:24)

Не завидую я тем разработчикам. 8-)


 
Anatoly Podgoretsky ©   (2007-11-29 14:47) [7]

> Sergey13  (29.11.2007 14:41:06)  [6]

Я тоже.
И смотрю на это обсуждение и душа протестует.


 
ari_9   (2007-11-29 20:42) [8]

Sergey13

А я понял твой 3 пункт именно как создание новых, неизвестных программе настроек, типа "а не заколбасить ли нам зеленую полосу на главной форме".

) нет, не до такой степени клинично, конечно



Страницы: 1 вся ветка

Текущий архив: 2008.04.27;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.011 c
15-1205505495
AlexanderMS
2008-03-14 17:38
2008.04.27
Переводчик исходников с С++ на Delphi.


2-1207094959
snake-as
2008-04-02 04:09
2008.04.27
Не меняется курсор на форме


15-1205653077
pvr
2008-03-16 10:37
2008.04.27
Языковая панель


15-1205646648
Гость
2008-03-16 08:50
2008.04.27
как отредактировть .res?


15-1205598966
DVM
2008-03-15 19:36
2008.04.27
Кто нибудь пользовался SimpleXML? Как впечатления?