Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Проектирование БД Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
 База данных ЖКГ  [new]
Megadragon
Member

Откуда: Украина
Сообщений: 12
Добрый вечер!
Передо мной стоит задача спроектировать базу ЖКХ (жилищно-коммунального хозяйства) – дома, квартиры, лицевые счета, тарифы, счётчики и т.д. Если нужно – набросаю урезанную версию ER-модели.
Это «исходная» часть, на основе которой (в концептуальном приближении) «расчётный модуль» будет начислять плату за коммунальные услуги, льготы, перерасчёты (в случае изменений «задним числом») и записывать их в «конечную» часть БД.

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

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

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


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

[img]https://nick-name.ru/forum/Megadragon.gif[/img]
19 фев 19, 22:26    [21814936]     Ответить | Цитировать Сообщить модератору
 Re: База данных ЖКГ  [new]
Alex_496
Member [заблокирован]

Откуда: https://www.dvbi.ru
Сообщений: 3869
Megadragon,

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

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

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

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

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

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

А, да еще были начисления за крупный домашний скот и летний полив огородов :)
19 фев 19, 22:43    [21814942]     Ответить | Цитировать Сообщить модератору
 Re: База данных ЖКГ  [new]
softwarer
Member

Откуда: 127.0.0.1
Сообщений: 58454
Блог
Megadragon
Может быть, у кого-то есть другие идеи?

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

Что же касается Вашей наивной схемы, то она принципиально неверна, поскольку Вы идёте от ануса к гландам. В частности, если попробуете задать вопрос - "для каких бизнес-функций мне нужна описанная иерархия наследования", тут же выясните, что она нафиг не нужна. Для расчётов нужны лицевые счета с некоторой дополнительной информацией (количество людей, площадь итп.), счётчики и отношение многие ко многим между первыми и вторыми.
19 фев 19, 22:58    [21814947]     Ответить | Цитировать Сообщить модератору
 Re: База данных ЖКГ  [new]
Megadragon
Member

Откуда: Украина
Сообщений: 12
Прошу прощения, забыл добавить, что выгрузки из БД могут быть действительно любыми. И адрес лицевого счёта могут попросить конкатенировать в одну колонку (ну вот лень им это через Excel и СЦЕПИТЬ делать и всё тут), и вот здесь для частного сектора как раз не нужно выводить «псевдо-квартиру».

softwarer
Что же касается Вашей наивной схемы, то она принципиально неверна, поскольку Вы идёте от ануса к гландам. В частности, если попробуете задать вопрос - "для каких бизнес-функций мне нужна описанная иерархия наследования", тут же выясните, что она нафиг не нужна. Для расчётов нужны лицевые счета с некоторой дополнительной информацией (количество людей, площадь итп.), счётчики и отношение многие ко многим между первыми и вторыми.

Ну, допустим, так оно и случится, и придётся все мои «домыслы», «фантазии», «извраты» и всё такое упрощать.
А если, так сказать, для общего развития: как лучше избежать описанных мной ранее псевдо-подъездов и псевдо-квартир?
19 фев 19, 23:45    [21814962]     Ответить | Цитировать Сообщить модератору
 Re: База данных ЖКГ  [new]
softwarer
Member

Откуда: 127.0.0.1
Сообщений: 58454
Блог
Megadragon
А если, так сказать, для общего развития: как лучше избежать описанных мной ранее псевдо-подъездов и псевдо-квартир?

Вам вообще не нужны такие сущности как "подъезды" и "квартиры". Сущность, которая Вам здесь нужна - "адрес" (как правило, к адресу будет привязан один лицевой счёт, но бывает, что и несколько). У адреса целая куча атрибутов - область, район, населённый пункт, улица, номер дома, корпус, строение и так далее. В том числе и номер квартиры. Любой из этих атрибутов может отсутствовать, то есть быть null-ом. Например, вполне возможный адрес - "Московская область, Ногинский район, деревня Мухосрановка, дом 28 кв. 12" (обратите внимание - улицы нет, то есть null).
20 фев 19, 00:26    [21814973]     Ответить | Цитировать Сообщить модератору
 Re: База данных ЖКГ  [new]
Alibek B.
Member

Откуда:
Сообщений: 3189
Megadragon
Может быть, у кого-то есть другие идеи?

Выкинуть свою модель, она неадекватна.
Пару месяцев поработать в АСУ, на кассе, походить с контроллерами, затем сделать все заново.
20 фев 19, 09:12    [21815123]     Ответить | Цитировать Сообщить модератору
 Re: База данных ЖКГ  [new]
AlBor
Member

Откуда: Россия
Сообщений: 156
Megadragon
А если, так сказать, для общего развития..

Для начала нужно определиться какую задачу вы решаете. Если остановитесь на расчетах за услуги, то квартиры и подъезды уходят на второй план. На первом у вас будет лицевой счет потребителя (ответственного квартиросъемщика). Который может быть один на квартиру, несколько на квартиру, один на несколько квартир, один на отдельный дом или несколько на отдельный дом (дом продали по частям, но квартир не назначили).
Лет семь назад пришлось в этом всем разбираться. А уж сколько возникает заморочек с расценками и льготами, которые нередко надо перерасчитывать с 25 числа, например.
Выбором СУБД на этом этапе вообще не стоит затрудняться.
У нас в свое время был выбран Firebird, например.
20 фев 19, 09:59    [21815149]     Ответить | Цитировать Сообщить модератору
 Re: База данных ЖКГ  [new]
L_argo
Member

Откуда:
Сообщений: 890
2ТС:
Свяжитесь с Владимиром Петренко
Он реально крут в области автоматизации ЖКХ.
Правда я давно с ним не общался. :(
20 фев 19, 11:37    [21815241]     Ответить | Цитировать Сообщить модератору
 Re: База данных ЖКГ  [new]
L_argo
Member

Откуда:
Сообщений: 890
Проблема адресов ЧС еще и в том, что под одним адресом может жить неск. семей и у них отдельные счетчики и счета.

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

Без реального опыта туда не стоит соваться.
20 фев 19, 12:01    [21815262]     Ответить | Цитировать Сообщить модератору
 Re: База данных ЖКГ  [new]
Alibek B.
Member

Откуда:
Сообщений: 3189
L_argo
Проблема адресов ЧС еще и в том, что под одним адресом может жить неск. семей

Это неважно.
Уже сказали, что основная точка отсчета — это лицевой счет.
Все должно идти от него.
20 фев 19, 13:19    [21815346]     Ответить | Цитировать Сообщить модератору
 Re: База данных ЖКГ  [new]
Wizandr
Member

Откуда: Империя Добра
Сообщений: 36923
База данных ЖКТ
20 фев 19, 17:25    [21815634]     Ответить | Цитировать Сообщить модератору
 Re: База данных ЖКГ  [new]
demind10
Member

Откуда:
Сообщений: 17
Alex_496
Megadragon,

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

Поддержу. А еще существуют 3-х и пяти зонные счетчики. А завтра могут придумать 24 или 48 тарифных зон(получасовки), так что может быть имеет смысл закладывать возможность работы со счетчиками с произвольным числом тарифных зон.
Неплохо бы учитывать иерархию счетчиков(например, счетчик для полива может сидеть под домовым счетчиком и его расход не надо учитывать в водоотведении). А также статистический расход, нормативный расход, учет сроков поверки приборов учета, подогрев горячей воды в самом доме, и в этом случае возможен учет составляющей подогрева в стоимости горячей воды в зависимости от расхода тепловой энергии и многое другое.
20 фев 19, 17:35    [21815650]     Ответить | Цитировать Сообщить модератору
 Re: База данных ЖКГ  [new]
Cane Cat Fisher
Member

Откуда:
Сообщений: 1800
Alibek B.
L_argo
Проблема адресов ЧС еще и в том, что под одним адресом может жить неск. семей

Это неважно.
Уже сказали, что основная точка отсчета — это лицевой счет.
Все должно идти от него.


Но и адрес тоже нужен. Ведь лицевой счет не в воздухе висит, это физическое либо юридическое лицо, которое контролеру нужно найти на местности. С ним нужно заключить договор, указав точный адрес как реквизит, чтобы потом можно было судиться. А если произойдет авария, и будет перекрыт Большой Водяной Кран, скажем, "на дома 1-9 по нечетной стороне улицы Северной с 12 до 20 часов", это надо будет тарифицировать для всех абонентов, попавших под отключение. Тут и пригодится привязка к адресу.
21 фев 19, 11:20    [21816099]     Ответить | Цитировать Сообщить модератору
 Re: База данных ЖКГ  [new]
Alibek B.
Member

Откуда:
Сообщений: 3189
Cane Cat Fisher
Но и адрес тоже нужен.

Адрес нужен, но это атрибут, а не сущность.

Cane Cat Fisher
А если произойдет авария, и будет перекрыт Большой Водяной Кран, скажем, "на дома 1-9 по нечетной стороне улицы Северной с 12 до 20 часов", это надо будет тарифицировать для всех абонентов, попавших под отключение.

Адрес для этого не обязателен и даже вреден.
Иерархия доставки коммунальной услуги представляет собой дерево: поставщик — магистральные узлы — распределительные узлы — получатель. Конечный получатель услуги (лицевой счет) подключен к определенному распределительному узлу. При аварии известно, какие магистральные и распределительные узлы затронуты, под отключение попадут лицевые счета, привязанные к этим узлам.
С адресом они не обязательно будут коррелировать. На одной и той же улице два соседних дома могут получать услуги от разных распределительных узлов.
21 фев 19, 13:00    [21816230]     Ответить | Цитировать Сообщить модератору
 Re: База данных ЖКГ  [new]
МодальноеОкно
Member

Откуда:
Сообщений: 2163
Megadragon
Может быть, у кого-то есть другие идеи?


беги дядь мить!
21 фев 19, 13:58    [21816331]     Ответить | Цитировать Сообщить модератору
 Re: База данных ЖКГ  [new]
МодальноеОкно
Member

Откуда:
Сообщений: 2163
softwarer
Наиболее перспективная для вашего заказчика идея заключается в том, что ему нужен программист


программист им понадобится когда у них будут хотя бы адекватные функциональные требования к софту
21 фев 19, 14:00    [21816337]     Ответить | Цитировать Сообщить модератору
 Re: База данных ЖКГ  [new]
L_argo
Member

Откуда:
Сообщений: 890
По моему это вообще какой-то курсач. Никто в здравом уме не поставит такую реальную задачу человеку, который не в теме.
21 фев 19, 15:08    [21816471]     Ответить | Цитировать Сообщить модератору
 Re: База данных ЖКГ  [new]
softwarer
Member

Откуда: 127.0.0.1
Сообщений: 58454
Блог
L_argo
Никто в здравом уме

А кто говорит про здравый ум? Родилась какая-то очередная управляющая компания для очередного десятка домов, денег ни хрена нет, решили взять студента, чтобы он им написал коммуналку задёшево, а то стандартные решения таааакииее дааарагиииеее...
21 фев 19, 15:15    [21816487]     Ответить | Цитировать Сообщить модератору
 Re: База данных ЖКГ  [new]
Mr.Fontaine
Member

Откуда: у меня столько мыслей?
Сообщений: 757
softwarer, вряд ли студент. Человек уже как миниумм с 16 -ого года крутится в теме проектирвоания БД для ЖКХ: https://www.sql.ru/forum/1227819/neskolko-voprosov?hl=
21 фев 19, 15:34    [21816515]     Ответить | Цитировать Сообщить модератору
 Re: База данных ЖКГ  [new]
softwarer
Member

Откуда: 127.0.0.1
Сообщений: 58454
Блог
Mr.Fontaine,

ну, вероятность, что он с того времени пишет курсач, тоже, прямо скажем, невелика. Что можно писать при таких сроках и с таким качеством... наводит на мысль о кандидатской
21 фев 19, 15:43    [21816531]     Ответить | Цитировать Сообщить модератору
 Re: База данных ЖКГ  [new]
МодальноеОкно
Member

Откуда:
Сообщений: 2163
softwarer
наводит на мысль о кандидатской


Картинка с другого сайта.Картинка с другого сайта.Картинка с другого сайта.
21 фев 19, 17:14    [21816630]     Ответить | Цитировать Сообщить модератору
 Re: База данных ЖКГ  [new]
kormot
Member

Откуда:
Сообщений: 249
Жоско вы людей стебёте :)
21 фев 19, 18:10    [21816709]     Ответить | Цитировать Сообщить модератору
 Re: База данных ЖКГ  [new]
Leonid Kudryavtsev
Member

Откуда:
Сообщений: 7830
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
21 фев 19, 18:23    [21816729]     Ответить | Цитировать Сообщить модератору
 Re: База данных ЖКГ  [new]
Leonid Kudryavtsev
Member

Откуда:
Сообщений: 7830
demind10
Неплохо бы учитывать иерархию счетчиков(например, счетчик для полива может сидеть под домовым счетчиком и его расход не надо учитывать в водоотведении).

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


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

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

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

Тот же полив. Есть счетчик, есть норма ВС, есть норма полива. Если мы тупа из потребления по вводу/счетчику будем вычитать "норму полива", то получится фигня. Т.к. по счетчику может оказаться, что потребили < нормы полива и что? ВО будет отрицательным?
21 фев 19, 18:33    [21816744]     Ответить | Цитировать Сообщить модератору
 Re: База данных ЖКГ  [new]
Cane Cat Fisher
Member

Откуда:
Сообщений: 1800
softwarer
L_argo
Никто в здравом уме

А кто говорит про здравый ум? Родилась какая-то очередная управляющая компания для очередного десятка домов, денег ни хрена нет, решили взять студента, чтобы он им написал коммуналку задёшево, а то стандартные решения таааакииее дааарагиииеее...


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

Уважаемый Megadragon, не могли бы вы разъяснить, какова собственно ситуация, задача, трудности? Куда дели предыдущего автора предыдущей программы, и как получилось, что у организации нету исходников? Есть ли прежняя база, к которой нужно написать новую морду, или все творить с нуля? Народ хочет разобраться. Иначе непонятно, какие советы вам давать.
22 фев 19, 00:45    [21816938]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Проектирование БД Ответить