Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Проверка на непересекаемость интервалов
|
|||
|---|---|---|---|
|
#18+
Есть таблица: Код: plaintext 1. 2. 3. 4. 5. 6. Заранее спасибо за ответы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.10.2007, 06:04 |
|
||
|
Проверка на непересекаемость интервалов
|
|||
|---|---|---|---|
|
#18+
Нужно поменять структуру данных. Все твои сложности - из-за неправильно выбранной модели данных. Зачем тебе хранить дату окончания действия тарифа? Достаточно хранить только дату начала. И тогда вся таоя головная боль исчезнет. Периоды действия тарифов не будут пересекаться, так как начало действия одного тарифа будет, по сути, датой окончания действия другого . Также не будет интервалов с неустановленным тарифом. Тогда вся твоя проверка сведется к двум чек-констрейнтам: первый будет проверять уникальность сочетания полей <идентификатор клиента>/<дата начала действия тарифа> (фактически составной уникальный ключ) Вторая будет проверять отсутствие пустых значений в поле с тарифом. Обе проверки элементрано реализуются средствами обеспечения целостности данных на уровне СУБД. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.10.2007, 06:46 |
|
||
|
Проверка на непересекаемость интервалов
|
|||
|---|---|---|---|
|
#18+
глянь здесь мне правда не ответили на мои вопросики.. видимо не правильно задал ) рад что смог поднять свою тему )) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.10.2007, 10:22 |
|
||
|
Проверка на непересекаемость интервалов
|
|||
|---|---|---|---|
|
#18+
Бабичев СергейНужно поменять структуру данных. Все твои сложности - из-за неправильно выбранной модели данных. Зачем тебе хранить дату окончания действия тарифа? Достаточно хранить только дату начала. И тогда вся таоя головная боль исчезнет. Периоды действия тарифов не будут пересекаться, так как начало действия одного тарифа будет, по сути, датой окончания действия другого . Также не будет интервалов с неустановленным тарифом. Тогда вся твоя проверка сведется к двум чек-констрейнтам: первый будет проверять уникальность сочетания полей <идентификатор клиента>/<дата начала действия тарифа> (фактически составной уникальный ключ) Вторая будет проверять отсутствие пустых значений в поле с тарифом. Обе проверки элементрано реализуются средствами обеспечения целостности данных на уровне СУБД. Спасибо за совет, структуру переделал, теперь эти проблемы решились. Хотел бы еще поинтересоваться, как лучше делать детализацию счета (лог денежных списаний). Сейчас делается примерно так (упрощенно): 1) Определяется сумма и id клиента; 2) UPDATE аккоунт SET баланс=баланс-СУММА WHERE id клиента=ID; 3) INSERT детализация (id клиента, сумма, тип услуги (номер),дата) VALUES (ID, SUM, 1,'2007-10-10'); Или лучше сначала делать вставку в таблицу детализации, а потом по триггеру на нее (таб детализации) делать UPDATE таблицы аккаунтов? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.10.2007, 10:34 |
|
||
|
Проверка на непересекаемость интервалов
|
|||
|---|---|---|---|
|
#18+
postuserСпасибо за совет, структуру переделал, теперь эти проблемы решились. Хотел бы еще поинтересоваться, как лучше делать детализацию счета (лог денежных списаний). Сейчас делается примерно так (упрощенно): 1) Определяется сумма и id клиента; 2) UPDATE аккоунт SET баланс=баланс-СУММА WHERE id клиента=ID; 3) INSERT детализация (id клиента, сумма, тип услуги (номер),дата) VALUES (ID, SUM, 1,'2007-10-10'); Или лучше сначала делать вставку в таблицу детализации, а потом по триггеру на нее (таб детализации) делать UPDATE таблицы аккаунтов?IMHO, как делается - так и правильно. Ибо вначале мы изменяем основную сущность и в случае успешного её изменения делаем запись детальной информации по проведенной операции. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.10.2007, 12:28 |
|
||
|
|

start [/forum/topic.php?fid=53&fpage=283&tid=2004902]: |
0ms |
get settings: |
8ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
35ms |
get topic data: |
9ms |
get forum data: |
3ms |
get page messages: |
38ms |
get tp. blocked users: |
1ms |
| others: | 212ms |
| total: | 326ms |

| 0 / 0 |
