powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / структура базы (показания и стоимость)
31 сообщений из 31, показаны все 2 страниц
структура базы (показания и стоимость)
    #38457172
MrAntonio
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем доброго времени суток!

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

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

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

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

Может кто-то сталкивался с подобными задачами или просто есть идеи по реализации?

Заранее всем спасибо за идеи и предложения!
...
Рейтинг: 0 / 0
структура базы (показания и стоимость)
    #38457189
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MrAntonioВ первой базе мы храним дату добавления и цену за единицу ресурса, а во
второй кол-во потребляемых ресурсов за месяц.
А как вы его получаете, это "количество за месяц"? Неужели снимаете показатели счётчиков
каждый месяц? Как-то не верится...

А вот если отказаться от глупой идеи с месяцами, то всё становится просто: потребление за
период между снятиями показаний счётчика делится на количество дней между этими снятиями,
потом умножается на количество дней действия цены. Всё укладывается в две таблички:
отсчётов с периодами снятия показаний и цен с периодами действия.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
структура базы (показания и стоимость)
    #38457203
MrAntonio
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry SibiryakovА как вы его получаете, это "количество за месяц"? Неужели снимаете показатели счётчиков
каждый месяц? Как-то не верится...
Мне не сильно интересно как будут вводиться показания, но предусмотрен мастер импорта.
Данные вводятся помесячно, так же как и мы все оплачиваем коммунальные услуги раз в месяц.

Не совсем понял ход ваших мыслей

Таблицы себе представлял в таком виде:
Код: plaintext
1.
2.
3.
4.
5.
6.
-----------------------
| DATE       | PRICE  |
-----------------------
| 10.06.2013 | 300    |
| 20.08.2013 | 310    |
| 15.10.2013 | 315    |
-----------------------
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
--------------------
| MONTH   | STATE  |
--------------------
| 07.2013 | 110    |
| 08.2013 | 102    |
| 09.2013 | 106    |
| 10.2013 | 115    |
--------------------
...
Рейтинг: 0 / 0
структура базы (показания и стоимость)
    #38457212
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MrAntonioДанные вводятся помесячно, так же как и мы все оплачиваем коммунальные
услуги раз в месяц.
Не знаю как их оплачиваете вы все, а лично я плачу ежемесячно только фиксированный залог.
При этом раз в год у меня снимают показания счётчиков, рассчитывают реальное потребление и
либо возвращают переплаченное, либо присылают счёт за недоплаченное.

MrAntonioТаблицы себе представлял в таком виде:
В принципе сойдёт, только во второй таблице вместо месяца стоит всё указывать точный день
на который зафиксировано показание. Тогда итоговая сумма за месяц тривиально считается как
сумма "потребление за день"*"цена в этот день" по всем дням месяца. Главное чтобы никто не
заметил ошибок округления.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
структура базы (показания и стоимость)
    #38457214
SERG1257
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MrAntonio На голову приходит только одно решение: если в месяце есть изменение цены, то разбивать месяц на части, считать сумму этих частей, а потом суммировать. Но я чувствую, что есть более простое решение, голова забита, ничего стоящего не приходит на умЯ в свое время так и реализовывал (менялись цены, льготники, состав семьи и т.д.) разбивал на периоды с постоянными значениями параметров, считал для каждого и суммировал итог.
...
Рейтинг: 0 / 0
структура базы (показания и стоимость)
    #38457216
MrAntonio
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry SibiryakovТогда итоговая сумма за месяц тривиально считается как сумма "потребление за день"*"цена в этот день" по всем дням месяца.

Получается что берем кол-во дней за период и дергаем для каждого дня период с суммой?
...
Рейтинг: 0 / 0
структура базы (показания и стоимость)
    #38457221
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MrAntonioберем кол-во дней за период и дергаем для каждого дня период с суммой?

Для начала - да. Будет тормозить - будете оптимизировать.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
структура базы (показания и стоимость)
    #38457222
MrAntonio
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вернее как вы писали берем период бьем его на дни, и потом для каждого из дней нам надо узнавать в какой диапазон цен он входит?
...
Рейтинг: 0 / 0
структура базы (показания и стоимость)
    #38457223
MrAntonio
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
так это же +1 обращение за каждый день, если брать статистику за год, то 365 дней в году = 365 запросов...
...
Рейтинг: 0 / 0
структура базы (показания и стоимость)
    #38457226
SERG1257
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MrAntonio Вернее как вы писали берем период бьем его на дниНе на дни а на интервалы с постоянными значениями. У интервала есть свойство - тариф, количество дней, среднедневное потребление и т.д.
Все известные даты начала и конца (периода, снятия показаний, изменения тарифа и т.д.) закидывались в табличку и проводился расчет. Опционально можно слить интервалы с одинаковыми свойствами (это красившее но более геморно)
У подавляющего большинства абонентов был один интервал.
...
Рейтинг: 0 / 0
структура базы (показания и стоимость)
    #38457230
MrAntonio
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SERG1257, вот в этом уже что-то есть, буду думать в этом направлении!
Благодарю...
...
Рейтинг: 0 / 0
структура базы (показания и стоимость)
    #38457236
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MrAntonioесли брать статистику за год, то 365 дней в году = 365 запросов...

Ты эта... Определись что ли: тебе платежи за месяц надо рассчитывать или какую-то
"статистику за год". Кроме того, во-первых, 365 запросов это не так уж и много, а
во-вторых, это легко оптимизируется до двух-четырёх запросов.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
структура базы (показания и стоимость)
    #38457245
MrAntonio
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry SibiryakovТы эта... Определись что ли: тебе платежи за месяц надо рассчитывать или какую-то
"статистику за год".
В первом посте писал:
вопрос даже не о хранении, а о дальнейшем выводе статистики.
...
Рейтинг: 0 / 0
структура базы (показания и стоимость)
    #38457349
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MrAntonioЕсть проект по управлению многоквартирными домами, стал вопрос о хранении данных (показании счетчиков и стоимости)
Про какие именно счетчики идет речь?
У нас счетчики есть только на
- холодную воду
- горячую воду
- электроэнергию

Снимают показания, таки да, раз в месяц.
...
Рейтинг: 0 / 0
структура базы (показания и стоимость)
    #38457351
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MrAntonioтак это же +1 обращение за каждый день, если брать статистику за год, то 365 дней в году = 365 запросов...
Не совсем понимаю откуда берется цифра 365... Ведь количественные показатели меняются раз в месяц (счетчики) или х/з с какой переодичностью (тарифы)...
...
Рейтинг: 0 / 0
структура базы (показания и стоимость)
    #38457370
Злой Бобр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MrAntonio,

Ну начнем с того что цена определяется на период. Т.е. если платежный период у вас месяц то цена в этом периоде только одна. Поэтому завязывайте с фантазиями или меняйте структуру БД.
Могу сказать что есть счетчики которые считывают данные по нескольким тарифам (например электроэнергия), так вот там периодом является день в формате ГГГГ-ММ-ДДTчч:мм:сс и оплата рассчитывается как разница показаний умноженная на тариф для указанного времени (ночью например цена электроэнергии на порядок меньше).
...
Рейтинг: 0 / 0
структура базы (показания и стоимость)
    #38457404
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Злой БобрНу начнем с того что цена определяется на период. Т.е. если платежный период у вас месяц то цена в этом периоде только одна.
Есть еще "перерасчеты"...
Т.е. расчитывают конечно раз в месяц... Но могут добавить +|- за прошлый, если тариф поменялся "задним числом"...
...
Рейтинг: 0 / 0
структура базы (показания и стоимость)
    #38457405
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Злой Бобрночью например цена электроэнергии на порядок меньше
В 10 раз?
...
Рейтинг: 0 / 0
структура базы (показания и стоимость)
    #38457598
Злой Бобр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
krvsaЗлой БобрНу начнем с того что цена определяется на период. Т.е. если платежный период у вас месяц то цена в этом периоде только одна.
Есть еще "перерасчеты"...
Т.е. расчитывают конечно раз в месяц... Но могут добавить +|- за прошлый, если тариф поменялся "задним числом"...
Обычно такого быть неможет. А "перерасчеты" бывают только как по Грибоедову "Горе от ума".
krvsaЗлой Бобрночью например цена электроэнергии на порядок меньше
В 10 раз?
В 3-4 раза, в зависимости от сетки. У вас наверное другой разбег, но тарификация по времени тоже есть.
...
Рейтинг: 0 / 0
структура базы (показания и стоимость)
    #38457695
Фотография Infernal V. Raven
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Злой БобрОбычно такого быть неможет. А "перерасчеты" бывают только как по Грибоедову "Горе от ума".Вы, наверное, мало с ЖКХ работали.
...
Рейтинг: 0 / 0
структура базы (показания и стоимость)
    #38457725
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Злой БобрОбычно такого быть неможет.
Блажен кто верует...

Злой БобрВ 3-4 раза
Это не "на порядок"...
...
Рейтинг: 0 / 0
структура базы (показания и стоимость)
    #38457738
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
krvsaЭто не "на порядок"... это полпорядка
всего в 2 раза человек ошибся, что вы придираетесь :))
...
Рейтинг: 0 / 0
структура базы (показания и стоимость)
    #38457739
m7m
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Злой БобрТ.е. если платежный период у вас месяц то цена в этом периоде только одна. Поэтому завязывайте с фантазиями или меняйте структуру БД.

Эх как хорошо, у вас в городе.
А в реальности, цена может измениться в любой день, фантазия определяющих её безудержна и нам за ней не поспеть

ps/
c 28 февраля устанавливается новая цена,
однако тем у кого счетчик и успел заплатить до 10 марта расчет проводить по старой цене
(это не моя фантазия)
...
Рейтинг: 0 / 0
структура базы (показания и стоимость)
    #38457815
Фотография Infernal V. Raven
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
m7mА в реальности, цена может измениться в любой день...+1
В том числе задним числом :)
...
Рейтинг: 0 / 0
структура базы (показания и стоимость)
    #38460196
Фотография S.G.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovНе знаю как их оплачиваете вы все, а лично я плачу ежемесячно только фиксированный залог.
При этом раз в год у меня снимают показания счётчиков, рассчитывают реальное потребление и
либо возвращают переплаченное, либо присылают счёт за недоплаченное.
А как "пересчетчики" справляются с ситуацией: в середине сезона, совершается покупка/продажа, у нового жильца совершенно другое потребление. Те, которые "пересчитывают", узнают об этом только через полгода, в момент в котором приходят узнать показания.
И если рассмотреть "сверху" - в большом массиве из жилых домов, практически каждый месяц жилище продается/покупается.

ps: спрашиваю, потому что сам кручусь в этой сфере вычислений.
...
Рейтинг: 0 / 0
структура базы (показания и стоимость)
    #38460252
Гхостик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Теоретически.

Периодический справочник владельцев жилья, платежи привязаны не только к квартире, но и к владельцу.
Остаток сводится по собственнику, не по квартире.
При смене владельца новая сумма начисления разбивается на две части, период старому и период новому. Новая сумма минус сумма оплаченного авансом за этот период выплачивается (или плюсуется в долг).
...
Рейтинг: 0 / 0
структура базы (показания и стоимость)
    #38460363
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
S.G.А как "пересчетчики" справляются с ситуацией: в середине сезона, совершается
покупка/продажа, у нового жильца совершенно другое потребление.
Старый потребитель приходит к ним и разрывает договор или переписывает на нового
владельца. При этом в первом случае техник снимает счётчик (новому владельцу установят
другой при заключении договора), во втором - сам сообщает текущие показатели счётчика.
Если старый владелец этого не сделает - будет платить по счетам нового.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
структура базы (показания и стоимость)
    #38460709
Фотография S.G.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovЕсли старый владелец этого не сделает - будет платить по счетам нового.ага, это интересно, спасибо.
...
Рейтинг: 0 / 0
структура базы (показания и стоимость)
    #38468266
Jaffar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
select t1.Count * t2.Price
from [Комуналка по месяцам] t1
outer apply(select top 1 t2.Price
            from [Изменения цен по услугам] t2
            where
                    t2.IDUSLUG = t1.IDUSLUG
            and     t2.Date <= t1.Date_Begin
            order by by t2.Date desc /**/ ) t2
...
Рейтинг: 0 / 0
структура базы (показания и стоимость)
    #38472812
6519
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
S.G.А как "пересчетчики" справляются с ситуацией: в середине сезона, совершается покупка/продажа, у нового жильца совершенно другое потребление.

проблемы негров шерифа не волнуют (с)

при сделке купли-продажи и переходе права собственности
задолженности по оплате (если есть) коммунальных услуг переходят к новому собственнику.

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

показания счетчиков расхода могут сниматься хоть каждый день. и к месяцам здесь привязываться не обязательно.
счета за предоставленные услуги выставляются раз в месяц на основании данных о показаниях счетчиков.
...
Рейтинг: 0 / 0
структура базы (показания и стоимость)
    #38472818
4804
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry SibiryakovСтарый потребитель приходит к ним и разрывает договор или переписывает на нового
владельца.


новый собственник приходит и перезаключает на себя договоры.
старого собственника эти проблемы никак не беспокоят.

теоретики...
...
Рейтинг: 0 / 0
31 сообщений из 31, показаны все 2 страниц
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / структура базы (показания и стоимость)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]