powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / База данных ЖКГ
25 сообщений из 49, страница 1 из 2
База данных ЖКГ
    #39776488
Megadragon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый вечер!
Передо мной стоит задача спроектировать базу ЖКХ (жилищно-коммунального хозяйства) – дома, квартиры, лицевые счета, тарифы, счётчики и т.д. Если нужно – набросаю урезанную версию ER-модели.
Это «исходная» часть, на основе которой (в концептуальном приближении) «расчётный модуль» будет начислять плату за коммунальные услуги, льготы, перерасчёты (в случае изменений «задним числом») и записывать их в «конечную» часть БД.

Сейчас у меня проблема с хранением лицевых счетов частного сектора. Отличие между ним и многоквартирными домами заключается в том, что в 1 случае лицевой счёт привязывается к дому, а во 2 – к квартире.
При этом заказчик требует, чтобы в адресах в частном секторе отсутствовали заглушки вроде «кв. 0». Реализация частных домов как 1-квартирных тоже не катит (или, по крайней мере, необходимо скрыть такую «псевдо-квартиру» от конечных пользователей).

Похожая проблема и со счётчиками на отопление и воду. Как известно, они бывают квартирные, общедомовые и даже подъездные. Более того, я знаю реальный случай с 2 многоэтажками, построенными в стык друг к другу. Отопление к этим домам идёт через 3 счётчика, 1 из которых охватывает 3 подъезда одного дома и 2 другого.
Здесь я склоняюсь к созданию таблицы Подъезды и отношением многие-ко-многим между ней и счётчиками, однако в этом случае повторяется проблема частных домов – скрыть «псевдо-подъезд» в случае 1-подъездной многоэтажки.

Сейчас я склоняюсь к иерархии наследования вроде такой:
Код: sql
1.
2.
3.
4.
5.
Строение –> Частный дом
         |
         –> Многоквартирный дом –> 1-подъездный
                                |
                                –> Многоподъездный



Может быть, у кого-то есть другие идеи?
P.S. Насчёт СУБД – рассматриваем исключительно бесплатные для некоммерческого использования, пока что колеблемся между Firebird и PostgreSQL.

https://nick-name.ru/nickname/megadragon/][img] https://nick-name.ru/forum/Megadragon.gif [/img]
...
Рейтинг: 0 / 0
База данных ЖКГ
    #39776492
Фотография Alex_496
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Megadragon,

Квартиры и частные дома могут иметь более 1-го лицевого счета в случае раздела площади по суду.

Про прописку-выписку и счета до заселения по прописке, про зависшие суммы долгов при продаже.

Про федеральные, региональные, муниципальные льготы не забудьте, которые могут как на конкретное лицо, так и членов семьи, как на все ЖКУ, так и на отдельные виды услуг.

Потом еще учет отключений на временный срок отдельных услуг.
2-х и 1-тарифные счетчики.
Доп. платные услуги "обязательные" и необязательные.

Про субсидии разузнайте.

И учет начислений разным поставщикам услуг с разными графиками перечислений, ой, еще пени.

А, да еще были начисления за крупный домашний скот и летний полив огородов :)
...
Рейтинг: 0 / 0
База данных ЖКГ
    #39776494
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MegadragonМожет быть, у кого-то есть другие идеи?
Наиболее перспективная для вашего заказчика идея заключается в том, что ему нужен программист (а ещё более вероятно - ему нужно внедрить готовое решение, коих миллион. будет куда лучше, надёжнее, быстрее и дешевле).

Что же касается Вашей наивной схемы, то она принципиально неверна, поскольку Вы идёте от ануса к гландам. В частности, если попробуете задать вопрос - "для каких бизнес-функций мне нужна описанная иерархия наследования", тут же выясните, что она нафиг не нужна. Для расчётов нужны лицевые счета с некоторой дополнительной информацией (количество людей, площадь итп.), счётчики и отношение многие ко многим между первыми и вторыми.
...
Рейтинг: 0 / 0
База данных ЖКГ
    #39776500
Megadragon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Прошу прощения, забыл добавить, что выгрузки из БД могут быть действительно любыми. И адрес лицевого счёта могут попросить конкатенировать в одну колонку (ну вот лень им это через Excel и СЦЕПИТЬ делать и всё тут), и вот здесь для частного сектора как раз не нужно выводить «псевдо-квартиру».

softwarerЧто же касается Вашей наивной схемы, то она принципиально неверна, поскольку Вы идёте от ануса к гландам. В частности, если попробуете задать вопрос - "для каких бизнес-функций мне нужна описанная иерархия наследования", тут же выясните, что она нафиг не нужна. Для расчётов нужны лицевые счета с некоторой дополнительной информацией (количество людей, площадь итп.), счётчики и отношение многие ко многим между первыми и вторыми.
Ну, допустим, так оно и случится, и придётся все мои «домыслы», «фантазии», «извраты» и всё такое упрощать.
А если, так сказать, для общего развития: как лучше избежать описанных мной ранее псевдо-подъездов и псевдо-квартир?
...
Рейтинг: 0 / 0
База данных ЖКГ
    #39776505
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MegadragonА если, так сказать, для общего развития: как лучше избежать описанных мной ранее псевдо-подъездов и псевдо-квартир?
Вам вообще не нужны такие сущности как "подъезды" и "квартиры". Сущность, которая Вам здесь нужна - "адрес" (как правило, к адресу будет привязан один лицевой счёт, но бывает, что и несколько). У адреса целая куча атрибутов - область, район, населённый пункт, улица, номер дома, корпус, строение и так далее. В том числе и номер квартиры. Любой из этих атрибутов может отсутствовать, то есть быть null-ом. Например, вполне возможный адрес - "Московская область, Ногинский район, деревня Мухосрановка, дом 28 кв. 12" (обратите внимание - улицы нет, то есть null).
...
Рейтинг: 0 / 0
База данных ЖКГ
    #39776571
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MegadragonМожет быть, у кого-то есть другие идеи?
Выкинуть свою модель, она неадекватна.
Пару месяцев поработать в АСУ, на кассе, походить с контроллерами, затем сделать все заново.
...
Рейтинг: 0 / 0
База данных ЖКГ
    #39776589
AlBor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MegadragonА если, так сказать, для общего развития..
Для начала нужно определиться какую задачу вы решаете. Если остановитесь на расчетах за услуги, то квартиры и подъезды уходят на второй план. На первом у вас будет лицевой счет потребителя (ответственного квартиросъемщика). Который может быть один на квартиру, несколько на квартиру, один на несколько квартир, один на отдельный дом или несколько на отдельный дом (дом продали по частям, но квартир не назначили).
Лет семь назад пришлось в этом всем разбираться. А уж сколько возникает заморочек с расценками и льготами, которые нередко надо перерасчитывать с 25 числа, например.
Выбором СУБД на этом этапе вообще не стоит затрудняться.
У нас в свое время был выбран Firebird, например.
...
Рейтинг: 0 / 0
База данных ЖКГ
    #39776646
L_argo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2ТС:
Свяжитесь с Владимиром Петренко
Он реально крут в области автоматизации ЖКХ.
Правда я давно с ним не общался. :(
...
Рейтинг: 0 / 0
База данных ЖКГ
    #39776661
L_argo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Проблема адресов ЧС еще и в том, что под одним адресом может жить неск. семей и у них отдельные счетчики и счета.

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

Без реального опыта туда не стоит соваться.
...
Рейтинг: 0 / 0
База данных ЖКГ
    #39776709
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
L_argoПроблема адресов ЧС еще и в том, что под одним адресом может жить неск. семей
Это неважно.
Уже сказали, что основная точка отсчета — это лицевой счет.
Все должно идти от него.
...
Рейтинг: 0 / 0
База данных ЖКГ
    #39776863
Фотография Wizandr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
База данных ЖКТ
...
Рейтинг: 0 / 0
База данных ЖКГ
    #39776869
demind10
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Alex_496Megadragon,

Потом еще учет отключений на временный срок отдельных услуг.
2-х и 1-тарифные счетчики.

Поддержу. А еще существуют 3-х и пяти зонные счетчики. А завтра могут придумать 24 или 48 тарифных зон(получасовки), так что может быть имеет смысл закладывать возможность работы со счетчиками с произвольным числом тарифных зон.
Неплохо бы учитывать иерархию счетчиков(например, счетчик для полива может сидеть под домовым счетчиком и его расход не надо учитывать в водоотведении). А также статистический расход, нормативный расход, учет сроков поверки приборов учета, подогрев горячей воды в самом доме, и в этом случае возможен учет составляющей подогрева в стоимости горячей воды в зависимости от расхода тепловой энергии и многое другое.
...
Рейтинг: 0 / 0
База данных ЖКГ
    #39777143
Cane Cat Fisher
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alibek B.L_argoПроблема адресов ЧС еще и в том, что под одним адресом может жить неск. семей
Это неважно.
Уже сказали, что основная точка отсчета — это лицевой счет.
Все должно идти от него.

Но и адрес тоже нужен. Ведь лицевой счет не в воздухе висит, это физическое либо юридическое лицо, которое контролеру нужно найти на местности. С ним нужно заключить договор, указав точный адрес как реквизит, чтобы потом можно было судиться. А если произойдет авария, и будет перекрыт Большой Водяной Кран, скажем, "на дома 1-9 по нечетной стороне улицы Северной с 12 до 20 часов", это надо будет тарифицировать для всех абонентов, попавших под отключение. Тут и пригодится привязка к адресу.
...
Рейтинг: 0 / 0
База данных ЖКГ
    #39777225
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cane Cat FisherНо и адрес тоже нужен.
Адрес нужен, но это атрибут, а не сущность.

Cane Cat FisherА если произойдет авария, и будет перекрыт Большой Водяной Кран, скажем, "на дома 1-9 по нечетной стороне улицы Северной с 12 до 20 часов", это надо будет тарифицировать для всех абонентов, попавших под отключение.
Адрес для этого не обязателен и даже вреден.
Иерархия доставки коммунальной услуги представляет собой дерево: поставщик — магистральные узлы — распределительные узлы — получатель. Конечный получатель услуги (лицевой счет) подключен к определенному распределительному узлу. При аварии известно, какие магистральные и распределительные узлы затронуты, под отключение попадут лицевые счета, привязанные к этим узлам.
С адресом они не обязательно будут коррелировать. На одной и той же улице два соседних дома могут получать услуги от разных распределительных узлов.
...
Рейтинг: 0 / 0
База данных ЖКГ
    #39777268
МодальноеОкно
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MegadragonМожет быть, у кого-то есть другие идеи?

беги дядь мить!
...
Рейтинг: 0 / 0
База данных ЖКГ
    #39777270
МодальноеОкно
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarerНаиболее перспективная для вашего заказчика идея заключается в том, что ему нужен программист

программист им понадобится когда у них будут хотя бы адекватные функциональные требования к софту
...
Рейтинг: 0 / 0
База данных ЖКГ
    #39777339
L_argo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По моему это вообще какой-то курсач. Никто в здравом уме не поставит такую реальную задачу человеку, который не в теме.
...
Рейтинг: 0 / 0
База данных ЖКГ
    #39777352
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
L_argoНикто в здравом уме
А кто говорит про здравый ум? Родилась какая-то очередная управляющая компания для очередного десятка домов, денег ни хрена нет, решили взять студента, чтобы он им написал коммуналку задёшево, а то стандартные решения таааакииее дааарагиииеее...
...
Рейтинг: 0 / 0
База данных ЖКГ
    #39777375
Mr.Fontaine
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer, вряд ли студент. Человек уже как миниумм с 16 -ого года крутится в теме проектирвоания БД для ЖКХ: https://www.sql.ru/forum/1227819/neskolko-voprosov?hl=
...
Рейтинг: 0 / 0
База данных ЖКГ
    #39777388
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mr.Fontaine,

ну, вероятность, что он с того времени пишет курсач, тоже, прямо скажем, невелика. Что можно писать при таких сроках и с таким качеством... наводит на мысль о кандидатской
...
Рейтинг: 0 / 0
База данных ЖКГ
    #39777457
МодальноеОкно
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarerнаводит на мысль о кандидатской

...
Рейтинг: 0 / 0
База данных ЖКГ
    #39777489
kormot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Жоско вы людей стебёте :)
...
Рейтинг: 0 / 0
База данных ЖКГ
    #39777498
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alibek B.L_argoПроблема адресов ЧС еще и в том, что под одним адресом может жить неск. семей
Это неважно.
Уже сказали, что основная точка отсчета — это лицевой счет.
Все должно идти от него.

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

Проблемы с расчетом квартир с несколькими лс. Некуда складывать объем. Т.к. и счетчик (и норма) нужно (по закону) считать для квартиры, а уже потом раскидывать по лицевым счетам. Считать сразу по лицевым счетам (как сделал я), как-то уе....щно.

Например: В квартире 2 лицевых счета (A,B, платили по прибору), в этом месяце появляется еще один лицевой счет (C), нужно расчитать лицевой счет C .... Опа... Считать нужно по среднему, а показаний прибора в этом месяце нет и данных по предыдущему периоду "как бы" нет. Приходятся брать "первое попавшиеся" из лицевых счетов (A,B) и счетать по среднему.

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

IMHO & AFAIK

Как я понимаю современный закон в части МКД, потребление считается все же по квартире. А не по счетчику или по лицевому счету.

Что отличается от алгоритмов которые закладываются в ряд систем. Где например ( Oracle CC&B ) среднее считается по счетчику. Оно может и логично... но для МКД сильно запарно. Т.к. норму то мы считаем по всей квартире, т.ч. и среднее (в случае нескольких счетчиков) хотелось бы считать по квартире и без разбивки на счетчики.

IMHO & AFAIK

В общем, по терминологии CC&B, Service Point (точка предоставления услуг), все же квартира. НО ! И даже не счетчик / ввод (их может быть несколько). Т.к. норма (а по хорошему и среднее) целиком на всю квартиру.

Лицевой счет, по хорошему, чисто "дележ" кубов и денег при выставлении счета.

Note: но я в результате расчет сделал по лицевым счетам :=) only. "так хочет заказчик" ( C )

IMHO & AFAIK
...
Рейтинг: 0 / 0
База данных ЖКГ
    #39777510
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
demind10Неплохо бы учитывать иерархию счетчиков(например, счетчик для полива может сидеть под домовым счетчиком и его расход не надо учитывать в водоотведении).

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

А вот тут можно поподробнее.

Никогда такого "иерахию счетчиков" в живую не видел. В некоторых системах можно поставить счетчики "друг за другом", и, например, показание одного счетчика минусов от другого.

Но совершенно не понятно, что будет происходить, если в процессе расчета у нас меняется "качество показаний"

Тот же полив. Есть счетчик, есть норма ВС, есть норма полива. Если мы тупа из потребления по вводу/счетчику будем вычитать "норму полива", то получится фигня. Т.к. по счетчику может оказаться, что потребили < нормы полива и что? ВО будет отрицательным?
...
Рейтинг: 0 / 0
База данных ЖКГ
    #39777663
Cane Cat Fisher
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarerL_argoНикто в здравом уме
А кто говорит про здравый ум? Родилась какая-то очередная управляющая компания для очередного десятка домов, денег ни хрена нет, решили взять студента, чтобы он им написал коммуналку задёшево, а то стандартные решения таааакииее дааарагиииеее...

Боюсь, все интереснее. Есть упоминания о том, что "Есть прога... Исходников нет, в т.ч. поэтому, а не только в связи с новыми требованиями, новая прога пишется с нуля." : здесь.

Уважаемый Megadragon, не могли бы вы разъяснить, какова собственно ситуация, задача, трудности? Куда дели предыдущего автора предыдущей программы, и как получилось, что у организации нету исходников? Есть ли прежняя база, к которой нужно написать новую морду, или все творить с нуля? Народ хочет разобраться. Иначе непонятно, какие советы вам давать.
...
Рейтинг: 0 / 0
25 сообщений из 49, страница 1 из 2
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / База данных ЖКГ
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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