|
База "Арендодатель"
|
|||
---|---|---|---|
#18+
База "Арендодатель" Необходимо решить следующую задачу. Имеется арендодатель ("Хозяин") и ряд объектов, которые он сдает в аренду арендаторам ("Съемщик"). Каждый месяц съемщику необходимо осуществлять следующие платежи: 1. Арендная плата 2. Плата за электроэнергию 3. Плата за энергоресурсы 4. Плата за коммунальные услуги 5. …. Список счетов и их наименование может изменяться в зависимости от ЖЭКа. Размеры платежей по пп 2-… не зависят ни от Хозяина ни от Съемщика. Размер платежей по п.1 определяет Хозяин по договоренности со Съемщиком. Каждый месяц поступают следующие данные: 1.Размеры платежей, обязательных к уплате по пп 2-… за прошлый месяц. 2. Фактические размеры оплат по каждому из счетов по каждому Съемщику . 3. Размер оплаты по п.1 на следующий месяц либо на несколько месяцев вперед Предназначение базы данных - контроль над оплатой/задолженностью Съемщиков перед Хозяином. Система должна обеспечивать следующие возможности: 1. Ввод любых "Счетов" 2. Группировать счета в произвольном виде (к примеру счета 2-4 собрать в группу "Комуналка" и выдавать данные по этому "обобщенному счету" Система должна обеспечивать следующие функции: Отслеживать задолженности Съемщиков перед Хозяином по каждому из счетов. Выдавать информацию о задолженности/превышении в разрезе Съемщика/счета по превышениям/задолженностям и о суммарном размере задолженности/"переплаты". Рассчитывать чистый доход хозяина на определенный период вперед на основании прогноза проплат. Вопрос : какие под это дело возможны варианты структуры. Свой вариант я приведу чуть позже. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2003, 20:44 |
|
База "Арендодатель"
|
|||
---|---|---|---|
#18+
Сколько платишь? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2003, 21:12 |
|
База "Арендодатель"
|
|||
---|---|---|---|
#18+
akuz, задачка то учебная, простая, для отработки подходов... ... |
|||
:
Нравится:
Не нравится:
|
|||
23.05.2003, 18:47 |
|
База "Арендодатель"
|
|||
---|---|---|---|
#18+
wara akuz, задачка то учебная, простая, для отработки подходов... Это типа "взрослым дядям можно не беспокоиться"? Эту учебную задачку можно развернуть в хороший проект, за реализацию которого коммунальщики отвалят кругленькую сумму. Я сейчас прикинул в пять минут во что это развернется если сразу все предусматривать :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
23.05.2003, 19:10 |
|
База "Арендодатель"
|
|||
---|---|---|---|
#18+
Извини wara, но у взрослых дядей совсем нет времени. :( Да и к тому же здесь думать надо. :) А прокопайте мне траншею от моего дома до колодца, уж очень хочется посмотреть, как вы это делаете. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.05.2003, 00:20 |
|
База "Арендодатель"
|
|||
---|---|---|---|
#18+
akuz, Естественно, я никого насильно не заставляю тут свои мысли излагать. Вот только кажется мне, что опытный человек должен слету эти четыре таблицы выдавать (которых, как мне кажется,достаточно для моделирования данной ситуации). all Не надо меня подозревать в том, что я тут хочу денег заработать за счет чужих мозгов. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.05.2003, 14:16 |
|
База "Арендодатель"
|
|||
---|---|---|---|
#18+
wara Вот только кажется мне, что опытный человек должен слету эти четыре таблицы выдавать (которых, как мне кажется,достаточно для моделирования данной ситуации). Дело в том, что это всего лишь небольшая часть комплексной системы для коммунального хозяйства. Для того, чтобы она могла и дальше расширяться четырех таблиц мало. К сожалению я на таком уровне мыслить не могу :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
24.05.2003, 14:57 |
|
База "Арендодатель"
|
|||
---|---|---|---|
#18+
Jinn, Мыслить глобально, конечно, очень хорошо, вот только и локальные задачи тоже кто-то должен решать. В описании задачи нигде не сказано, что что система должна быть предназначена для "комплексной системы коммунального хозяйства". Просто есть Хозяин, несколько съемщиков и несколько ЖЭКов. Хозяину надо знать состояние взаиморасчетов... А пока я приведу свой вариант (из 3-х таблиц) Код: plaintext 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
24.05.2003, 15:30 |
|
База "Арендодатель"
|
|||
---|---|---|---|
#18+
Не надо меня подозревать в том, что я тут хочу денег заработать за счет чужих мозгов. Извини, подозревать надо. Но тебе я почему-то верю. Так уж и быть, будет время сделаю (правда без особого интереса). ... |
|||
:
Нравится:
Не нравится:
|
|||
24.05.2003, 15:32 |
|
База "Арендодатель"
|
|||
---|---|---|---|
#18+
wara Просто есть Хозяин, несколько съемщиков и несколько ЖЭКов. Хозяину надо знать состояние взаиморасчетов... Excel и девочка-секретарша не спасут Хозяина от лишних затрат на разработку ПО? :) Это действительно неплохая задача для начинающих. Вариантов решения много, хотелось бы посмотреть и оценить. Я действительно привык решать более масштабные задачи. Когда похожая задача у меня начала превращаться в комплексную, я понял что с мелкими фирмами больше работать не смогу :) ... |
|||
:
Нравится:
Не нравится:
|
|||
24.05.2003, 17:34 |
|
База "Арендодатель"
|
|||
---|---|---|---|
#18+
Логическая модель (только объекты, навскидку). ЖЭК - Название - Атрибуты (Адрес, телефоны и т.д.) Хозяин (всегда физ. лицо) - ФИО - Атрибуты (Адрес, телефоны, ИНН, пасп. дан. и т.д.) Съёмщик (всегда физ. лицо) - ФИО - Атрибуты (Адрес, телефоны, ИНН, пасп. дан. и т.д.) Объект - Хозяин - Адрес - ЖЭК Договор - Атрибуты (дата подписания, номер, агенство) - Объект - Арендатор (съёмщик) - Дата начала действия (заселения/передачи) - Арендная плата (фиксированная за месяц) - Предыдущий договор Группа счетов - Наименование Вид оплаты (счёта) - Наименование - Группа счетов Счёт (коммунальлые платежи) - Атрибуты (дата выставления, номер, получатель) - Объект - Период (месяц) - Вид оплаты - Сумма Платёж по счёту (коммунальлые платежи) - Атрибуты (дата выставления, номер, плательщик, получатель) - Счёт - Сумма Платёж по договору (арендная плата) - Дата платежа - Договор - Сумма ==== Соответствует? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.05.2003, 20:20 |
|
База "Арендодатель"
|
|||
---|---|---|---|
#18+
2 akuz Логическая модель (только объекты, навскидку). Вполне. В разделе "Договора" лучше указать срок действия договора. Поле "Предыдущий договор", с моей точки зрения, не нужно. Всегда можно вытащить все договоры по объекту (или Арендодателю), расположив их в хронологическом порядке. Таблицу объект разделить на две: Объект -Адрес Владелец -Хозяин -Объект -Дата Хозяин объекта может меняться по разным причинам. Таблицы "Счет" и "Платежи по счету" лучше объединить, добавив поля "Дата выставления счета" и "Дата платежа". Это тоже, так, навскидку :) ... |
|||
:
Нравится:
Не нравится:
|
|||
25.05.2003, 09:37 |
|
База "Арендодатель"
|
|||
---|---|---|---|
#18+
Большое спасибо, akuz и Jinn за интерес к данной теме и содержательные ответы, только вот смущает меня, что, по-моему, Ваш опыт Вам немного мешает отвечать на вопрос. Может я и не совсем грамотно изложил т.н. "техзадание", дело не в этом. Я хотел получить ответ в рамках поставленной задачи, либо критику постановки задачи, либо критику моего варианта. Вместо этого уважаемый akuz на основе своего опыта и моего "техзадания", по всей видимости, составил свое собственное представление о том, что представляет из себя задача и привел решение этой своей задачи. При этом введено много новых терминов, отсутствовавших в "техзадании", к примеру "Адрес", "телефоны","физическое лицо","ИНН", "Паспортные данные" "Договор","дата подписания", "номер", "агенство"," Дата начала действия","Предыдущий договор " и т.п. Целью моего вопроса было: 1. Смоделировать несложную, но в то же время емкую "учетную проблему" 2. Обсудить варианты структур данных под поставленную мною задачу. Целью моего вопроса не являлось: 1. Создать комплексную модель данных по данному вопросу с учетом всех возможных объектов,атрибутов и.т.п Призываю всех быть более внимательными и стараться отвечать на Заданные вопросы, либо указывать на то, что вопрос задан неграмотно. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.05.2003, 12:20 |
|
База "Арендодатель"
|
|||
---|---|---|---|
#18+
2 Jinn Хозяин объекта может меняться по разным причинам Таблицы "Счет" и "Платежи по счету" лучше объединить, добавив поля "Дата выставления счета" и "Дата платежа". Согласен, с оговоркой, что при смене хозяина договор остаётся прежний (что маловероятно) и счета всегда оплачиваются целиком. 2 wara Может я и не совсем грамотно изложил т.н. "техзадание", дело не в этом. Дело именно в этом. В твоём ТЗ не хвает многих данных, необходимых для решения задачи, которые как раз и уточняются при разработке модели. Без наличия рабочего варианта модели предмета обсуждения просто нет. На этом примере очень хорошо видно, как происходит общение заказчика с разработчиком. Давайте работать с ТЗ. :) При этом введено много новых терминов, отсутствовавших в "техзадании", к примеру "Адрес", "телефоны","физическое лицо","ИНН", "Паспортные данные" "Договор","дата подписания", "номер", "агенство"," Дата начала действия","Предыдущий договор " и т.п. Если ты заметил все малозначительные с точки зрения функционирования модели атрибуты я обозначил общим словом Атрибуты, что говорит о том, что их состав может меняться без проблем (а то что это будет так, действительно подсказывает опыт) и на них не надо заострять внимание. Целью моего вопроса было: 1. Смоделировать несложную, но в то же время емкую "учетную проблему" 2. Обсудить варианты структур данных под поставленную мною задачу. Целью моего вопроса не являлось: 1. Создать комплексную модель данных по данному вопросу с учетом всех возможных объектов,атрибутов и.т.п Призываю всех быть более внимательными и стараться отвечать на Заданные вопросы, либо указывать на то, что вопрос задан неграмотно. Ну извини, из сабжа это не следовало. :) Вот теперь мы имеем цель. Т.е. нам нужно не решить, а поставить задачу, т.е. создать ограниченную и в то же время работоспособную модель с жёстко фиксированной функциональностью. ==== ТАК? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.05.2003, 12:56 |
|
База "Арендодатель"
|
|||
---|---|---|---|
#18+
akuz "Т.е. нам нужно не решить, а поставить задачу, т.е. создать ограниченную и в то же время работоспособную модель с жёстко фиксированной функциональностью." - совершенно верно, естественно у меня и в мыслях не было полностью решать данную задачу в форуме. Только костяк, все принципиально важное, ничего лишнего. Приношу всем, кто меня не правильно понял с самого начала, свои извинения за то, что не совсем понятно выразился. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.05.2003, 13:23 |
|
База "Арендодатель"
|
|||
---|---|---|---|
#18+
Я бы пожалуй, для аренды, сделал так. Таблица Объекты (КодОбъекта, ИмяОбъекта) Таблица Клиенты (КодКлиента, ИмяКлиента) Таблица ИсторияКлиентов (КодОбъекта, КодКлиента, ДатаНачалаАренды,ДатаКонцаАренды) Таблица ИсторияЦеныАренды (КодОбъекта, Цена, ДатаНачалаДействияЦены) Таблица ИсторияПлатежей (КодКлиента, Платеж, ДатаПлатежа) ========= А уж запросы составлять по такой структуре - точно здорово поможет хорошо изучить SQL ========= Ого скока всего понаписали, пока я собрался ответить! Надо почитать. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.05.2003, 13:39 |
|
База "Арендодатель"
|
|||
---|---|---|---|
#18+
Может быть легче купить существующую обкатанную систему и не заморачиваться ? Тем более что таких систем навалом и там много чего по функционалу есть, что потом по любому выплывет при разработке своего проекта. P.S. Я просто работаю в конторе, которая пишет и сопровождает программы под жилищно-коммунальный комплекс и знаю - что это такое. Сначала кажется легкой задачей, потом выясняется что по отдельности учет не представляет ничего сложного, а вкупе все дает не кислую задачу с огромным набором входящих данных, разных направлений учета и большим кол-вом отчетов. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.05.2003, 14:17 |
|
База "Арендодатель"
|
|||
---|---|---|---|
#18+
Прочитал. По-моему, уважаемые Jinn и akuz слишком увлеклись детализацией. Дело это нужное и полезное, но на втором этапе проектирования. На первом - работоспособное ядро. Только минимально необходимое для работы. Впрочем, это не значит, что мудрые мысли по поводу детализации, возникшие на первом этапе, надо отбрасывать. И разговор о том, стоит ли объединять счета и платежи в одну таблицу несколько преждевременен. А будут ли выставляться счета? Основой для платежа служит договор и счетов может и не быть. Уж по оплате электроэнергии точно никто счетов не выставляет. Критика структуры Код: plaintext 1. 2. 3.
1. Пожалуйста, или уж все по-русски или по-аглицки (в японском не силен ). 2. Задолжность должна получатья из разницы между планируемыми и фактическими платежами. Введение такого поля - денормализация, которой нужно избегать всеми силами. ====== Мысля забавная пришла. А что если это сделать на плоском файле и попытаться его нормализовать? Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38.
Пусть в меня кинут камень, если ЭТО не решает задачу ... |
|||
:
Нравится:
Не нравится:
|
|||
25.05.2003, 15:08 |
|
База "Арендодатель"
|
|||
---|---|---|---|
#18+
ASCRUS Точно, вылезет навалом. В том числе и то, чего нет в закупленой программе. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.05.2003, 15:23 |
|
База "Арендодатель"
|
|||
---|---|---|---|
#18+
2 уважаемый Cat2 Где, если не секрет, ты увидел моё решение? Я лишь пытался уточниить ЛОГИЧЕСКУЮ модель. А вот предлагать решение, не уточнив логическую модель, а лишь на основании личного опыта и домыслов ( Основой для платежа служит договор и счетов может и не быть. Уж по оплате электроэнергии точно никто счетов не выставляет ) уж точно преждевременно. Слова ЛИ, МОЖЕТ БЫТЬ, СКОРЕЕ ВСЕГО, ОБЫЧНО не те слова, которые должны браться в расчёт при разработке конечного решения. Мысля забавная пришла. А что если это сделать на плоском файле и попытаться его нормализовать? Мысля забавная, это один из стандартных подходов. Правда я это обычно делаю в голове. :) Пусть в меня кинут камень, если ЭТО не решает задачу Камень говоришь?! Хм, ну лови (навкидку) 2. Группировать счета в произвольном виде (к примеру счета 2-4 собрать в группу "Комуналка" и выдавать данные по этому "обобщенному счету" Если напрячся ещё пяток камней найдётся. Задачу решает, несомненно, вот только какую? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.05.2003, 18:31 |
|
База "Арендодатель"
|
|||
---|---|---|---|
#18+
akuz писал: Где, если не секрет, ты увидел моё решение? Для меня описание таблиц - уже решение. akuz писал: Слова ЛИ, МОЖЕТ БЫТЬ, СКОРЕЕ ВСЕГО, ОБЫЧНО не те слова, которые должны браться в расчёт при разработке конечного решения. Действительно, чушь написал. Сам-то никогда не уверен, что в следующем году будет 12 месяцев. akuz писал: Мысля забавная, это один из стандартных подходов. Правда я это обычно делаю в голове. :) Да? А у меня обычно все в нормализованом виде сразу в голову лезет. С трудом я плоский файл написал - организм долго сопротивлялся:). akuz писал: 2. Группировать счета... Если напрячся ещё пяток камней найдётся. Задачу решает, несомненно, вот только какую? Ту, которая была поставлена. Про аренду. И ничего в ней про группировку счетов не говорилось. &>:< ... |
|||
:
Нравится:
Не нравится:
|
|||
25.05.2003, 21:24 |
|
База "Арендодатель"
|
|||
---|---|---|---|
#18+
akuz No comments Мда :( Из обсуждения технической проблемы перешли на личности. Может хватит? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.05.2003, 10:01 |
|
База "Арендодатель"
|
|||
---|---|---|---|
#18+
1. Господа, прошу не ругаться, соблюдать "политкорректность" 2. Привожу еще раз свой вариант структуры в русскоязычном варианте: Код: plaintext 1. 2. 3. 4.
Если заполнить эту структуру тестовыми данными из варианта Cat2 то получится следующее: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15.
Основное, что меня смущает во всем этом вопросе, заключается в следующем - получается, что решить данную задачу можно двояко - либо кривая структура для хранения данных, но зато простые запросы, либо красивая структура, но сложные запросы (у меня, к примеру, не получается сделать "Оборотку" по таблице Долги и платежи без подзапросов). Нет ли тут какой крутой философии? По-моему выходит, что Реляционные БД вообще не подходят для решения учетных проблем, поскольку даже такая простая задача "Про Карабаса-Барабаса", как выясняется, не имеет простого, красивого и однозначного решения ... |
|||
:
Нравится:
Не нравится:
|
|||
26.05.2003, 15:13 |
|
База "Арендодатель"
|
|||
---|---|---|---|
#18+
wara По-моему выходит, что Реляционные БД вообще не подходят для решения учетных проблем, поскольку даже такая простая задача "Про Карабаса-Барабаса", как выясняется, не имеет простого, красивого и однозначного решения RDBMS как нельзя лучше подходят для решения таких задач. И что ты понимаешь под "простым, красивым и однозначным решением"? Свалить в в одну таблицу (1НФ)?Однозначности не может быть в принципе - решений несколько. Красота достигается не количеством таблиц, но их структурой и индексацией. akuz предложил вполне приемлемое решение. небольшая доработка (конкретная под заказчика) и эта модель будет работать красиво, и запросы там несложные. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.05.2003, 18:04 |
|
|
start [/forum/topic.php?fid=32&tid=1546950]: |
0ms |
get settings: |
12ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
59ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
67ms |
get tp. blocked users: |
2ms |
others: | 16ms |
total: | 192ms |
0 / 0 |