|
|
|
структура базы (показания и стоимость)
|
|||
|---|---|---|---|
|
#18+
Всем доброго времени суток! Есть проект по управлению многоквартирными домами, стал вопрос о хранении данных (показании счетчиков и стоимости), вопрос даже не о хранении, а о дальнейшем выводе статистики. В первой базе мы храним дату добавления и цену за единицу ресурса, а во второй кол-во потребляемых ресурсов за месяц. В статистике надо выводить сумму коммуналок за выбранный период. Дело бы ерундовое, если бы цены тоже были за месяц, как и показания, перемножил да и все, но они могут поменяться в любой момент месяца. На голову приходит только одно решение: если в месяце есть изменение цены, то разбивать месяц на части, считать сумму этих частей, а потом суммировать. Но я чувствую, что есть более простое решение, голова забита, ничего стоящего не приходит на ум. Была идея сразу считать сумму при вводе показаний (берем последнюю цену, умножаем на кол-во и заносим в базу), но меня предупредили о возможности перерасчета, и в таком случае все равно придется реализовывать вышеописанный механизм. Может кто-то сталкивался с подобными задачами или просто есть идеи по реализации? Заранее всем спасибо за идеи и предложения! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2013, 00:27 |
|
||
|
структура базы (показания и стоимость)
|
|||
|---|---|---|---|
|
#18+
MrAntonioВ первой базе мы храним дату добавления и цену за единицу ресурса, а во второй кол-во потребляемых ресурсов за месяц. А как вы его получаете, это "количество за месяц"? Неужели снимаете показатели счётчиков каждый месяц? Как-то не верится... А вот если отказаться от глупой идеи с месяцами, то всё становится просто: потребление за период между снятиями показаний счётчика делится на количество дней между этими снятиями, потом умножается на количество дней действия цены. Всё укладывается в две таблички: отсчётов с периодами снятия показаний и цен с периодами действия. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2013, 00:47 |
|
||
|
структура базы (показания и стоимость)
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovА как вы его получаете, это "количество за месяц"? Неужели снимаете показатели счётчиков каждый месяц? Как-то не верится... Мне не сильно интересно как будут вводиться показания, но предусмотрен мастер импорта. Данные вводятся помесячно, так же как и мы все оплачиваем коммунальные услуги раз в месяц. Не совсем понял ход ваших мыслей Таблицы себе представлял в таком виде: Код: plaintext 1. 2. 3. 4. 5. 6. Код: plaintext 1. 2. 3. 4. 5. 6. 7. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2013, 01:08 |
|
||
|
структура базы (показания и стоимость)
|
|||
|---|---|---|---|
|
#18+
MrAntonioДанные вводятся помесячно, так же как и мы все оплачиваем коммунальные услуги раз в месяц. Не знаю как их оплачиваете вы все, а лично я плачу ежемесячно только фиксированный залог. При этом раз в год у меня снимают показания счётчиков, рассчитывают реальное потребление и либо возвращают переплаченное, либо присылают счёт за недоплаченное. MrAntonioТаблицы себе представлял в таком виде: В принципе сойдёт, только во второй таблице вместо месяца стоит всё указывать точный день на который зафиксировано показание. Тогда итоговая сумма за месяц тривиально считается как сумма "потребление за день"*"цена в этот день" по всем дням месяца. Главное чтобы никто не заметил ошибок округления. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2013, 01:19 |
|
||
|
структура базы (показания и стоимость)
|
|||
|---|---|---|---|
|
#18+
MrAntonio На голову приходит только одно решение: если в месяце есть изменение цены, то разбивать месяц на части, считать сумму этих частей, а потом суммировать. Но я чувствую, что есть более простое решение, голова забита, ничего стоящего не приходит на умЯ в свое время так и реализовывал (менялись цены, льготники, состав семьи и т.д.) разбивал на периоды с постоянными значениями параметров, считал для каждого и суммировал итог. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2013, 01:26 |
|
||
|
структура базы (показания и стоимость)
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovТогда итоговая сумма за месяц тривиально считается как сумма "потребление за день"*"цена в этот день" по всем дням месяца. Получается что берем кол-во дней за период и дергаем для каждого дня период с суммой? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2013, 01:31 |
|
||
|
структура базы (показания и стоимость)
|
|||
|---|---|---|---|
|
#18+
MrAntonioберем кол-во дней за период и дергаем для каждого дня период с суммой? Для начала - да. Будет тормозить - будете оптимизировать. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2013, 01:36 |
|
||
|
структура базы (показания и стоимость)
|
|||
|---|---|---|---|
|
#18+
Вернее как вы писали берем период бьем его на дни, и потом для каждого из дней нам надо узнавать в какой диапазон цен он входит? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2013, 01:37 |
|
||
|
структура базы (показания и стоимость)
|
|||
|---|---|---|---|
|
#18+
так это же +1 обращение за каждый день, если брать статистику за год, то 365 дней в году = 365 запросов... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2013, 01:39 |
|
||
|
структура базы (показания и стоимость)
|
|||
|---|---|---|---|
|
#18+
MrAntonio Вернее как вы писали берем период бьем его на дниНе на дни а на интервалы с постоянными значениями. У интервала есть свойство - тариф, количество дней, среднедневное потребление и т.д. Все известные даты начала и конца (периода, снятия показаний, изменения тарифа и т.д.) закидывались в табличку и проводился расчет. Опционально можно слить интервалы с одинаковыми свойствами (это красившее но более геморно) У подавляющего большинства абонентов был один интервал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2013, 01:57 |
|
||
|
структура базы (показания и стоимость)
|
|||
|---|---|---|---|
|
#18+
SERG1257, вот в этом уже что-то есть, буду думать в этом направлении! Благодарю... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2013, 02:06 |
|
||
|
структура базы (показания и стоимость)
|
|||
|---|---|---|---|
|
#18+
MrAntonioесли брать статистику за год, то 365 дней в году = 365 запросов... Ты эта... Определись что ли: тебе платежи за месяц надо рассчитывать или какую-то "статистику за год". Кроме того, во-первых, 365 запросов это не так уж и много, а во-вторых, это легко оптимизируется до двух-четырёх запросов. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2013, 02:28 |
|
||
|
структура базы (показания и стоимость)
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovТы эта... Определись что ли: тебе платежи за месяц надо рассчитывать или какую-то "статистику за год". В первом посте писал: вопрос даже не о хранении, а о дальнейшем выводе статистики. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2013, 02:58 |
|
||
|
структура базы (показания и стоимость)
|
|||
|---|---|---|---|
|
#18+
MrAntonioЕсть проект по управлению многоквартирными домами, стал вопрос о хранении данных (показании счетчиков и стоимости) Про какие именно счетчики идет речь? У нас счетчики есть только на - холодную воду - горячую воду - электроэнергию Снимают показания, таки да, раз в месяц. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2013, 08:40 |
|
||
|
структура базы (показания и стоимость)
|
|||
|---|---|---|---|
|
#18+
MrAntonioтак это же +1 обращение за каждый день, если брать статистику за год, то 365 дней в году = 365 запросов... Не совсем понимаю откуда берется цифра 365... Ведь количественные показатели меняются раз в месяц (счетчики) или х/з с какой переодичностью (тарифы)... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2013, 08:42 |
|
||
|
структура базы (показания и стоимость)
|
|||
|---|---|---|---|
|
#18+
MrAntonio, Ну начнем с того что цена определяется на период. Т.е. если платежный период у вас месяц то цена в этом периоде только одна. Поэтому завязывайте с фантазиями или меняйте структуру БД. Могу сказать что есть счетчики которые считывают данные по нескольким тарифам (например электроэнергия), так вот там периодом является день в формате ГГГГ-ММ-ДДTчч:мм:сс и оплата рассчитывается как разница показаний умноженная на тариф для указанного времени (ночью например цена электроэнергии на порядок меньше). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2013, 09:15 |
|
||
|
структура базы (показания и стоимость)
|
|||
|---|---|---|---|
|
#18+
Злой БобрНу начнем с того что цена определяется на период. Т.е. если платежный период у вас месяц то цена в этом периоде только одна. Есть еще "перерасчеты"... Т.е. расчитывают конечно раз в месяц... Но могут добавить +|- за прошлый, если тариф поменялся "задним числом"... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2013, 09:53 |
|
||
|
структура базы (показания и стоимость)
|
|||
|---|---|---|---|
|
#18+
Злой Бобрночью например цена электроэнергии на порядок меньше В 10 раз? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2013, 09:54 |
|
||
|
структура базы (показания и стоимость)
|
|||
|---|---|---|---|
|
#18+
krvsaЗлой БобрНу начнем с того что цена определяется на период. Т.е. если платежный период у вас месяц то цена в этом периоде только одна. Есть еще "перерасчеты"... Т.е. расчитывают конечно раз в месяц... Но могут добавить +|- за прошлый, если тариф поменялся "задним числом"... Обычно такого быть неможет. А "перерасчеты" бывают только как по Грибоедову "Горе от ума". krvsaЗлой Бобрночью например цена электроэнергии на порядок меньше В 10 раз? В 3-4 раза, в зависимости от сетки. У вас наверное другой разбег, но тарификация по времени тоже есть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2013, 11:57 |
|
||
|
структура базы (показания и стоимость)
|
|||
|---|---|---|---|
|
#18+
Злой БобрОбычно такого быть неможет. А "перерасчеты" бывают только как по Грибоедову "Горе от ума".Вы, наверное, мало с ЖКХ работали. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2013, 12:44 |
|
||
|
структура базы (показания и стоимость)
|
|||
|---|---|---|---|
|
#18+
Злой БобрОбычно такого быть неможет. Блажен кто верует... Злой БобрВ 3-4 раза Это не "на порядок"... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2013, 12:57 |
|
||
|
структура базы (показания и стоимость)
|
|||
|---|---|---|---|
|
#18+
krvsaЭто не "на порядок"... это полпорядка всего в 2 раза человек ошибся, что вы придираетесь :)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2013, 13:01 |
|
||
|
структура базы (показания и стоимость)
|
|||
|---|---|---|---|
|
#18+
Злой БобрТ.е. если платежный период у вас месяц то цена в этом периоде только одна. Поэтому завязывайте с фантазиями или меняйте структуру БД. Эх как хорошо, у вас в городе. А в реальности, цена может измениться в любой день, фантазия определяющих её безудержна и нам за ней не поспеть ps/ c 28 февраля устанавливается новая цена, однако тем у кого счетчик и успел заплатить до 10 марта расчет проводить по старой цене (это не моя фантазия) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2013, 13:01 |
|
||
|
структура базы (показания и стоимость)
|
|||
|---|---|---|---|
|
#18+
m7mА в реальности, цена может измениться в любой день...+1 В том числе задним числом :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.11.2013, 13:31 |
|
||
|
структура базы (показания и стоимость)
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovНе знаю как их оплачиваете вы все, а лично я плачу ежемесячно только фиксированный залог. При этом раз в год у меня снимают показания счётчиков, рассчитывают реальное потребление и либо возвращают переплаченное, либо присылают счёт за недоплаченное. А как "пересчетчики" справляются с ситуацией: в середине сезона, совершается покупка/продажа, у нового жильца совершенно другое потребление. Те, которые "пересчитывают", узнают об этом только через полгода, в момент в котором приходят узнать показания. И если рассмотреть "сверху" - в большом массиве из жилых домов, практически каждый месяц жилище продается/покупается. ps: спрашиваю, потому что сам кручусь в этой сфере вычислений. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2013, 12:49 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=38457223&tid=1541065]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
33ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
56ms |
get tp. blocked users: |
1ms |
| others: | 232ms |
| total: | 364ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...