|
|
|
Как реализовать хранение по периодам?
|
|||
|---|---|---|---|
|
#18+
Добрый день! Необходимо хранить нормы расхода ГСМ на определенный период (год, квартал, месяц). Периоды могут пересекаться, то есть на год норма своя, сумма норм по месяцам за этот год не обязательно должна совпадать с нормой за год и тоже самое с кварталом. +Необходимо хранить историю норм и обеспечить возможность задания норм на будущее. Сейчас пока 3 идеи: 1)Реализовать с помощью двух дат: begin_dt и end_dt 2)Создать таблицу period периодов (супертип): period ------------- id, period_name, period_type и подтипы: period_year -------------------- period_id year period_quarter -------------------- period_id quarter quarter_of_year period_month -------------------- period_id month month_of_year 3)Создать одну таблицу nomr_on_period --------------------------- norm year quarter month И в зависимости от периода заполнять соответствующие поля. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2010, 10:17 |
|
||
|
Как реализовать хранение по периодам?
|
|||
|---|---|---|---|
|
#18+
Нафааня, а какие нормы приоритетнее?? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2010, 10:41 |
|
||
|
Как реализовать хранение по периодам?
|
|||
|---|---|---|---|
|
#18+
lLocust, Приоритетов нет. Это не фактические значения, а приблизительные данные(сколько примерно будет расходоваться ГСМ там-то в такой-то период), поэтому нормы нужно показывать используются в зависимости от выбранного периода. В основном это нужно для отчетности. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2010, 10:53 |
|
||
|
Как реализовать хранение по периодам?
|
|||
|---|---|---|---|
|
#18+
НафааняНеобходимо хранить нормы расхода ГСМ на определенный период (год, квартал, месяц). Если это действительно так, могу предложить такой вариант: ПериодКодНазваниеДата началаДата окончания Норма расходаКодЗначениеКод периода ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2010, 11:07 |
|
||
|
Как реализовать хранение по периодам?
|
|||
|---|---|---|---|
|
#18+
krvsa, Большое спасибо! Пока больше всех нравится:) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2010, 11:29 |
|
||
|
Как реализовать хранение по периодам?
|
|||
|---|---|---|---|
|
#18+
Нафааня , как вариант, вообще все в одну таблицу записать... Код: plaintext 1. 2. 3. 4. 5. 6. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2010, 11:47 |
|
||
|
Как реализовать хранение по периодам?
|
|||
|---|---|---|---|
|
#18+
Норма расходаКодНазвание периодаДата началаДата окончанияЗначение ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2010, 11:47 |
|
||
|
Как реализовать хранение по периодам?
|
|||
|---|---|---|---|
|
#18+
авторПериоды могут пересекатьсяКак раз этого делать не надо Насколько я понял ваша задача в зависимости от даты и например вида топлива подтянуть значение Проще всего это сделать как Код: plaintext 1. 2. Другой отчет (по годам) будет джойнить с другой таблицей. Парой топиков выше была подробно показана неудачность идеи смешивать мух с котлетами т.е. засовывание разных справочников с одинаковыми полями в одну таблицу (преимуществ не видно, а недостатки могут вылезти). Поэтому я за вариант 2 упрощенный - супертип нафиг не нужен, наименования периодов тоже, в каждую таблицу стоит добавить begin_dt и end_dt - вычисляемые, или с check на year, quarter или month ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2010, 15:30 |
|
||
|
Как реализовать хранение по периодам?
|
|||
|---|---|---|---|
|
#18+
SERG1257авторПериоды могут пересекатьсяКак раз этого делать не надо Насколько я понял ваша задача в зависимости от даты и например вида топлива подтянуть значение Проще всего это сделать как Код: plaintext 1. 2. Другой отчет (по годам) будет джойнить с другой таблицей. Парой топиков выше была подробно показана неудачность идеи смешивать мух с котлетами т.е. засовывание разных справочников с одинаковыми полями в одну таблицу (преимуществ не видно, а недостатки могут вылезти). Поэтому я за вариант 2 упрощенный - супертип нафиг не нужен, наименования периодов тоже, в каждую таблицу стоит добавить begin_dt и end_dt - вычисляемые, или с check на year, quarter или month а я за таблицу с периодами (дата начала+дата конца) + приоритет.. т.е. для года он меньший чем, для квартала.. Для квартала он меньший чем, для месяца... И выбираешь себе число из периода с наибольшим приоритетом. С одним и тем же приоритетом периоды пересекаться не должны.... Тогда все расширяется потом легко до недель, дней, ..... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2010, 17:01 |
|
||
|
Как реализовать хранение по периодам?
|
|||
|---|---|---|---|
|
#18+
SERG1257Как раз этого делать не надо В моей задаче норма расхода ГСМ это оценочное значение (например на основании статистики за прошлые года). Нормы могут вводиться на будущий год, причем их надо вводить на год, отдельно на каждый квартал и на каждый месяц. Все нормы вводятся и рассчитываются операторами/специалистами. И ситуация когда сумма норм за 12 месяцев <> сумме норм за 4 квартала <> норме за год вполне нормальна(для данной задачи). Поэтому интервалы могут пересекаться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2010, 18:46 |
|
||
|
Как реализовать хранение по периодам?
|
|||
|---|---|---|---|
|
#18+
Нафааня И ситуация когда сумма норм за 12 месяцев <> сумме норм за 4 квартала <> норме за год вполне нормальна(для данной задачи). Поэтому интервалы могут пересекаться.Да пофиг что там чему-то что-то не равно. Вопрос был как вы собираетесь использовать (запрашивать) эти интервалы. Я предположил (см пример) что разные запросы (по месяцам, по кварталам или по годам) запрашивают свои интервалы, lLocust предположил что в случае пересечения интервалов действуют к.л. приоритеты - т.е. фильтр делающий из нескольких записей одну. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2010, 07:25 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=37017301&tid=1542403]: |
0ms |
get settings: |
9ms |
get forum list: |
18ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
160ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
64ms |
get tp. blocked users: |
2ms |
| others: | 211ms |
| total: | 485ms |

| 0 / 0 |
