Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2004.01.05;
Скачать: [xml.tar.bz2];

Вниз

контроль временных параметров   Найти похожие ветки 

 
stud   (2003-12-08 10:17) [0]

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


 
Sergey13   (2003-12-08 10:29) [1]

ИМХО, слишком общий вопрос. Ответ - как сможешь, так и делай.


 
stud   (2003-12-08 10:35) [2]

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


 
Anatoly Podgoretsky   (2003-12-08 10:37) [3]

Так и переведи в неактивное состояние.


 
stud   (2003-12-08 10:44) [4]


> Anatoly Podgoretsky © (08.12.03 10:37) [3]

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


 
Sergey13   (2003-12-08 11:30) [5]

Ну например если есть две даты - начало и конец - то запись с пустой датой конца - активна, с непустой - архив. Соответственно преписать запросы.
Тут все зависит от логики работы. Можно ли работать "задним числом", есть ли человек отвечающий за "актуальность" данных и т.д. и т.п.


 
Silver Alex   (2003-12-08 11:54) [6]

а какой перевод в неактивное состояние если есть две даты, начало и конец действия, разве мало этого?Запрос может просто надо пофиксить.Или я неверно понял

select * from table
where
fromdate<=:OnDate
and (todate>=:OnDate or todate is null)


 
Desdechado   (2003-12-08 12:15) [7]

а почему вдруг "ВСЕ пользователи начнут ломиться неактивность изменять"?
Пусть проверяется перед изменением по всем медпрограммам. Как это реализовать, другой вопрос (на клиенте/ах, сервисом, на сервере)...


 
stud   (2003-12-08 12:16) [8]


> Silver Alex © (08.12.03 11:54) [6]

в общем да, но запрос типа select * from table where pr=1 более приятный)). хотя может зря я велосипед придумываю))


 
stud   (2003-12-08 12:19) [9]


> Desdechado © (08.12.03 12:15) [7]

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


 
Danilka   (2003-12-08 12:45) [10]


> [8] stud © (08.12.03 12:16)
> в общем да, но запрос типа select * from table where pr=1
> более приятный)). хотя может зря я велосипед придумываю))


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

в крайнем случае, напиши вьюху или ХП, в которой будет доп. поле: pr=1 или 0, и делай селект из нее наздоровье.


 
Silver Alex   (2003-12-08 12:54) [11]


> в общем да, но запрос типа select * from table where pr=1
> более приятный)). хотя может зря я велосипед придумываю))

все данные достаются на дату.Правильно?Ты ведь не напишешь просто "select * from table where pr=1".Когда эта запись "закрыта",например 10.10.2003 ,а мы открываем на 01.10.2003?, в любом случае надо смотреть на дату


 
stud   (2003-12-08 13:10) [12]

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


 
Danilka   (2003-12-08 13:13) [13]

[12] stud © (08.12.03 13:10)
индексы тебя спасут. :))
какие проблемы? хоть мильен мильенов записей, запрос вот-сдесь:
[6] Silver Alex © (08.12.03 11:54)
отработает очень шустро, если будут индексы по полям с датой. :))


 
Danilka   (2003-12-08 13:13) [14]

причем, нисколько не медленнее, чем "select * from table where pr=1".


 
stud   (2003-12-08 14:54) [15]

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


 
Danilka   (2003-12-08 14:58) [16]

см еще раз:
[6] Silver Alex © (08.12.03 11:54)

select * from table
where
fromdate<=:OnDate
and (todate>=:OnDate or todate is null)


 
stud   (2003-12-08 15:16) [17]

возможно...



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

Форум: "Базы";
Текущий архив: 2004.01.05;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.009 c
1-11967
BlackTiger
2003-12-18 16:23
2004.01.05
Можно ли в ЧУЖОМ MDI-приложении запретить закрытие форм через


14-12159
sad
2003-12-05 10:07
2004.01.05
Иероглиф светлой печали


8-12006
DDS
2003-09-01 17:33
2004.01.05
Как нарисовать стрелку. Ну типа как в WORDе?


1-11847
cat
2003-12-18 16:37
2004.01.05
Как писать в компонентах Delphi на различных языках.


6-12013
xGhost
2003-11-04 08:50
2004.01.05
Обновление программы по сети





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский