Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Базы данных
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 03.09.2012, 22:49
tadalex tadalex вне форума
Прохожий
 
Регистрация: 15.12.2010
Сообщения: 21
Репутация: 10
По умолчанию Создание базы данных

Если моя тема не по адресу, прошу перевести в соответствующий раздел.

Уважаемые форумчане!
Есть ли желающие помочь в создании не коммерческой (не для продажи) БД по учету услуг в сфере жилищно-коммунального хозяйства? Мое предложение такое - я пробую создать БД для подобных целей и по проделанным шагам информирую в этом топике. Вы знакомитесь с моими действиями и если они не верны, то советуете как лучше поступить. Если мне что-то становится не понятно - я обращаюсь к Вам за помощью.

Коротко опишу, что мне необходимо.
1. Сетевую БД по услугам в жилищно-коммунальном хозяйстве.
2. Число возможных клиентов от нескольких сотен в начале до примерно 5000.
3. Необходимо вести учет по таким позициям как Объекты (город, район, улица, дом, квартира), Владельцы (учет тех, кому принадлежит квартира), Виды услуг, Тарифы на услуги, Поставщики услуг, Платежи за предоставленные услуги, Должники, Выставленные счета, Заявки на ремонтные работы, Сменные задания, Сотрудники, Лицевые счета (история платежей, данные о Владельце, о его собственности, особенности получения и оплаты услуг), Показания счетчиков (вода, тепло, газ, электричество), Склад (относительно небольшой учет), Учет Договоров.
4. Должна быть возможность формирования счета (в виде конструктора формы отчета/счета).
5. Программа должна быть мультиязычной (обязательны два языка) и иметь возможность использования Unicode (из-за особенностей латышского языка).
6. Должна быть функция Личный кабинет (для клиента) в которой пользователь мог бы видеть историю платежей по своей собственности, дистанционно передавать показания своих счетчиков, делать заявки, просматривать и оплачивать счета через Интернет банки.

Что имею.
1. Delphi XE.
2. С БД не определился и прошу совета.
3. Познания в программировании - на самом начальном уровне, хотя есть желание их расширить.
4. Литературы пересмотрел много, но или я тугодум или не то читал - воз и ныне там - научился не многому. Лучше воспринимаю на реальных примерах.

Вот, в принципе и все пока. Возможно, что не все осветил - спрашивайте, отвечу. Буду признателен любому дельному совету. Очень прошу не делать комментарии типа взялся не за свое дело и т.п. Я все-равно эту базу создам. Просто мне кажется, что с Вашей помощью быстрее и без наступаний на грабли по нескольку раз.
Ответить с цитированием
  #2  
Старый 04.09.2012, 02:52
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,015
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Тема перенесена в раздел "Базы данных"
Ответить с цитированием
Этот пользователь сказал Спасибо lmikle за это полезное сообщение:
tadalex (04.09.2012)
  #3  
Старый 04.09.2012, 02:59
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,015
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Цитата:
Коротко опишу, что мне необходимо.
1. Сетевую БД по услугам в жилищно-коммунальном хозяйстве.
2. Число возможных клиентов от нескольких сотен в начале до примерно 5000.
3. Необходимо вести учет по таким позициям как Объекты (город, район, улица, дом, квартира), Владельцы (учет тех, кому принадлежит квартира), Виды услуг, Тарифы на услуги, Поставщики услуг, Платежи за предоставленные услуги, Должники, Выставленные счета, Заявки на ремонтные работы, Сменные задания, Сотрудники, Лицевые счета (история платежей, данные о Владельце, о его собственности, особенности получения и оплаты услуг), Показания счетчиков (вода, тепло, газ, электричество), Склад (относительно небольшой учет), Учет Договоров.
4. Должна быть возможность формирования счета (в виде конструктора формы отчета/счета).
5. Программа должна быть мультиязычной (обязательны два языка) и иметь возможность использования Unicode (из-за особенностей латышского языка).
6. Должна быть функция Личный кабинет (для клиента) в которой пользователь мог бы видеть историю платежей по своей собственности, дистанционно передавать показания своих счетчиков, делать заявки, просматривать и оплачивать счета через Интернет банки.

1-2. А ты вообще в теме предмета или из головы придумывать будешь? И с какой стороны от прилавка должна стоять эта система?
4. Разбирайся с FastReport. Но он платный.
6. А вы батенька клиентскую программу с web-приложением не перепутали?

Цитата:
Что имею.
1. Delphi XE.
2. С БД не определился и прошу совета.
3. Познания в программировании - на самом начальном уровне, хотя есть желание их расширить.
4. Литературы пересмотрел много, но или я тугодум или не то читал - воз и ныне там - научился не многому. Лучше воспринимаю на реальных примерах.

1. По большей части без разницы.
2. Я бы посоветовал либо FireBird, либо MS SQL Server Express
3-4. Читать, учить, пробовать, потом возвращаться и думать как сделать более правильно.

Удачи в начинании.

ЗЫ. За советом - всегда welcome, помочь особо не смогу. т.к.
1. Нет юникодной Дельфи
2. Не заню латышского языка
Ответить с цитированием
Этот пользователь сказал Спасибо lmikle за это полезное сообщение:
tadalex (04.09.2012)
  #4  
Старый 04.09.2012, 08:47
tadalex tadalex вне форума
Прохожий
 
Регистрация: 15.12.2010
Сообщения: 21
Репутация: 10
По умолчанию

Цитата:
Сообщение от lmikle
1-2. А ты вообще в теме предмета или из головы придумывать будешь? И с какой стороны от прилавка должна стоять эта система?
Я не понял, что значит в "теме предмета". Да, основные моменты этой БД я брал из головы, так как ничего похожего, в том числе и с возможностью латышского языка в Сети не нашел, а для работы мне подобное крайне нужно.
Цитата:
4. Разбирайся с FastReport. Но он платный.
С FastReport не был знаком, сейчас почитаю по нему литуратуру. Понимаю так, что это альтернатива MS SQL ?
Цитата:
6. А вы батенька клиентскую программу с web-приложением не перепутали?
Если Вы о "Личном кабинете" данной БД то я пока не могу понять а в чем будет разница на стороне пользователя - клиентское приложение или web-приложение? В чем существенные различия?

Цитата:
2. Я бы посоветовал либо FireBird, либо MS SQL Server Express
Я больше склоняюсь к MS SQL Server, но может быть мой выбор ошибочен из-за поверхностного знания обеих программ.

Цитата:
1. Нет юникодной Дельфи
Так речь не о самом Unicode Делфи, а о платформе БД поддерживающей Unicode. Например BDE не поддерживает работу с Unicode. Возможно, я не корректно выразился в первом письме.

За возможность обращаться за советами - спасибо!

Последний раз редактировалось lmikle, 05.09.2012 в 00:16.
Ответить с цитированием
  #5  
Старый 04.09.2012, 09:17
Аватар для Aristarh Dark
Aristarh Dark Aristarh Dark вне форума
Модератор
 
Регистрация: 07.10.2005
Адрес: Москва
Сообщения: 2,906
Версия Delphi: Delphi XE
Репутация: выкл
По умолчанию

Если нужен "Личный кабинет", то самым простым вариантом будет наверное MySQL как СУБД, php для веб-морды личного кабинета, и аппликуха Delphi для операторов рассчетного центра.
__________________
Некоторые программисты настолько ленивы, что сразу пишут рабочий код.

Если вас наказали ни за что - радуйтесь: вы ни в чем не виноваты.
Ответить с цитированием
Этот пользователь сказал Спасибо Aristarh Dark за это полезное сообщение:
tadalex (04.09.2012)
  #6  
Старый 04.09.2012, 09:25
Аватар для Yurk@
Yurk@ Yurk@ вне форума
Специалист
 
Регистрация: 07.09.2007
Адрес: Украина, г. Днепропетровск
Сообщения: 892
Версия Delphi: 7 + ОгнеПтица
Репутация: выкл
По умолчанию

Aristarh Dark очень даже приемлемый вариант предложил. tadalex, присмотрись в эту сторону.
да и судя по списку задач в БД есть все основания полагать что "просто так" желающие помочь в создании вряд ли найдутся. эт скорее всего в раздел "работу"
__________________
Поживу - увижу, Доживу - узнаю, Выживу - учту.
[P.S.]->Выражая благодарность за помощь - Вы получаете шанс на помощь в следующий раз
Ответить с цитированием
Этот пользователь сказал Спасибо Yurk@ за это полезное сообщение:
tadalex (04.09.2012)
  #7  
Старый 04.09.2012, 09:52
tadalex tadalex вне форума
Прохожий
 
Регистрация: 15.12.2010
Сообщения: 21
Репутация: 10
По умолчанию

Спасибо всем откликнувшимся. Я еще раз повторюсь, я не прошу за меня выполнить работу. Я хочу сам понять и написать данную базу данных. Млих знаний в этом вопросе мало, поэтому и обратился с предложением помочь своими подсказками держать меня на правильном пути (если так можно выразиться).
Итак, пока мне ясно, что надо присмотреться к двум предложенным вариантам. Сейчас покопаюсь в литературе и отпишусь о своем мнении. Я так понимаю, что определиться с платформой необходимо на начальном этапе написания БД. Так как у меня нет углубленных познаний ни в MS-SQL, ни в InterBase, ни в FireBird, то какую из них (или еще чего) выбирать дело вкуса, я правильно понял? Тогда наверное действительно имеет смысл присмотреться и остановиться на связке Delphi-MySQL-PHP.
Кажется я начал понимать, какая разница (в моем случае) между клиентским приложением и web-приложением. Web-приложение не нужно будет инсталлировать у пользователя (жильца), а клиентское по-моему без отдельной установки нельзя использовать с основной БД. Если так, то тогда в этой части понятно, хотя пока не пойму как Web-приложение будет взаимодействовать с основной программой. И еще. Если со временем мне понадобится использовать программу не только в центральном офисе и у жильца, но и например, в филиале организации, то что тогда - лучше клиентскую часть туда устанавливать? Или тоже web-приложение?
Ответить с цитированием
  #8  
Старый 04.09.2012, 14:01
Аватар для Lost_Fish
Lost_Fish Lost_Fish вне форума
Начинающий
 
Регистрация: 21.07.2011
Адрес: Новосибирск
Сообщения: 103
Версия Delphi: Delphi 7,XE2
Репутация: выкл
По умолчанию

У тебя довольно серьёзная заявка, это оптимизация в сфере ЖКХ, скажу что такой проект по времени будет не один месяц. Для проекта с кол-вом пользователей 100+ и кол-вом записей десятки тысяч тебе просто необходимо знать как писать оптимизированные SQL запросы (иначе у тебя сервак будет колом всавать), знать как правильно составлять структуру таблиц, если на это нет готовых ответов тогда это только с опытом, а с кол-вом пользователей 5к тебе вообще придётся задуматься о репликации (почитай о масштабируемых системах).

начальных познаний тут тебе не хватит это точно, помима выбора сервера БД и среды разработки тебе ещё нужно выбрать компоненты доступа к БД (от них напрямую зависит скорость), компоненты отображения и ввода данных, ну и компоненты формирования отчётности

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

я работаю со связкой EhLib 5.6 (отображение), DevArt IBDac 4.1(Доступ), FastReport не помню какой из Delphi XE2, FireBird 2.5
всё это можно найти бесплатно только ниже версией

ну и если твой выбор падёт на FireBird/InterBase то http://www.ibase.ru/develop.htm#repl это тебе пригодится

P.S. и ООП у тебя должно быть прокачано до уровня написания собственных компонентов, иначе утонешь в собственном коде

Последний раз редактировалось Lost_Fish, 04.09.2012 в 14:36.
Ответить с цитированием
Этот пользователь сказал Спасибо Lost_Fish за это полезное сообщение:
tadalex (04.09.2012)
  #9  
Старый 04.09.2012, 23:00
tadalex tadalex вне форума
Прохожий
 
Регистрация: 15.12.2010
Сообщения: 21
Репутация: 10
По умолчанию

Я думаю, что в рамках поставленных задач можно постепенно совершенствоваться или я ошибаюсь? Да, многих вещей я не знаю, но хочу попробовать понять. В любом случае неудача только по мне и аукнется. Ведь сам для себя делаю.
В сфере ЖКХ я довольно давно работаю, поэтому различные нюансы мне знакомы. Знакомы и возникающие в процессе работы вопросы и задачи. И как правильно Вы выразились, мне действительно нужна программа для оптимизации работы структуры ЖКХ на уровне меня (моей организации) как управляющего, поставщиками услуг и жильцами. Буду пробовать осилить. Может для начала и на несколько более скромном уровне (например, 150-200 клиентов). Я ппросто подумал, может имеет смысл предусмотреть возможность расширения программы для обслуживания большего числа клиентов со временем. Ведь наверняка у меня будет через какое-то время больше клиентов, чем я обслуживаю как управляющий сейчас. И что бы в корне программу не переделывать, решил предусмотреть возможность увеличения числа клиентов до 5000.
Ответить с цитированием
  #10  
Старый 05.09.2012, 00:29
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,015
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Я бы советовал с начала определиться с функционалом. Т.е. надо написать то, что обычно называется "Техническое задание", в котором будет описан функционал (с разбиением по типам клиентов).

Вот смотри. У тебя может быть несколько типов клиентов.
1. Работники ЖКХ (их тоже разные типы - на вскидку я даже слабо себе представляю что за задачи они должны решать).
2. Операторы по оплате (просто кассиры, их задача найти клиента в БД и принять платеж).
3. Клиенты (т.е. плательщики).

Теперь тебе надо сесть и прописать для каждого типа клиента все возможные use case'ы (т.е. как тот или иной клиент может использовать систему). В итоге ты получишь набор функционала, необходимый для реализации, причем разбитый по рабочим местам.

Ну и, если хочешь делать совсем правильно, то тебе потребуется реализовать примерно следующую архитектуру:
1. Сервер БД (ну тут все понятно). Я бы все-таки советовал смотреть в сторону FireBird (по разным причинам, в т.ч. и по отсутсвию ограничений и бесплатности; по сравнению с Мускулом он мне все-таки больше нравится)
2. Сервер приложений (вот это не обязательно, хотя в дальнейшем может и будет полезен).
3. Клиентское приложение для "внутренних" пользователей (различные операторы, каждому надо будет уметь автоматически настраивать рабочее место в зависимости от ролей).
4. web-приложение для "внешних" клиентов (ISAPI dll для IIS).
5. удаленный клиент для "внешних" клиентов (тоже не обязвтельно и не в первую очередь, но в перспективе - да).

Ну вот тебе информация к размышлению...

ЗЫ. По моему опыту MS SQL Server 2000 + COM+ AppServer + Клиентское приложение + web-модуль + email-рассыльщик + > 3000 клиентов => полет нормальный в одном из больших московских банков в течении более 3 лет (некоторая система внутренного фин.учета).

Последний раз редактировалось lmikle, 05.09.2012 в 00:33.
Ответить с цитированием
Этот пользователь сказал Спасибо lmikle за это полезное сообщение:
tadalex (05.09.2012)
  #11  
Старый 05.09.2012, 06:50
Аватар для Lost_Fish
Lost_Fish Lost_Fish вне форума
Начинающий
 
Регистрация: 21.07.2011
Адрес: Новосибирск
Сообщения: 103
Версия Delphi: Delphi 7,XE2
Репутация: выкл
По умолчанию

Цитата:
Сообщение от tadalex
И что бы в корне программу не переделывать, решил предусмотреть возможность увеличения числа клиентов до 5000.

поверь переделывать придётся в корне))

я тоже для одной конторы делал базу, просто переписывал существующую с акцесса на файрбёрд, преследовал две цели прокачать кодинг ну и если повезёт внедрить в конторе, контора уровня страны более 60 филиалов по всей стране в филиале в среднем по 5-6 человек онлайн в течении рабочего дня, писал во время работы и на выходных, заняло это примерно пол года, прогу не внедрили и слава богу теперь оглядываясь на тот код скажу что он бы вешал сервак и сам бы тормозил на таком кол-ве пользователей, переделывать нужно было его в корне, но повторить их клиентское приложение у меня получилось.

В нынешней конторе переписывал за двумя прогерами которые писали более 2-х лет и в итоге написали неповоротливую жутко тормозящую с огромным кол-вом ошибок х..ню которую я переписал за 4мес.

Теперь переписываю то чё написал расширяю функционал довожу до совершенства предела которому нет, учусь писать грамотно, учусь писать компоненты правильно, учусь, учусь, учусь...

так-что ты начинай писать лучше, а через годик поймёшь как надо и перепишешь
Ответить с цитированием
Этот пользователь сказал Спасибо Lost_Fish за это полезное сообщение:
tadalex (05.09.2012)
  #12  
Старый 05.09.2012, 10:23
tadalex tadalex вне форума
Прохожий
 
Регистрация: 15.12.2010
Сообщения: 21
Репутация: 10
По умолчанию

Что-то типа технического задания я себе набросал в самом начале, когда пытался понять, как же моя программа должна будет работать, какие функции выполнять и что мне это в итоге даст.
В кратце, самая большая проблема для меня, как управляющего - это организовать эффективный учет потребленных жильцами энергоресурсов (воды, газа, отопления, электричества и т.п.) и что и в каком объеме эти жильцы взамен компенсировали.
Кроме этого обязательно периодически возникают запросы на проведение каких-либо ремонтных работ, поэтому посчитал нужным учесть организации учета и заявок и сменных заданий.
Очень необходима статистика по должникам - кто, сколько, за что. Это вроде тоже учел.
Для удобства клиенов решил ввести так называемый Личный кабинет, цели и задачи которого в челом понимаю, но реализацию представляю пока смутно.
В виду того, что я кое-что набросал (как в плане техзадания, так и в плане концепции головного приложения) хотел бы спросить, а есть ли возможность мне для вас, кто мне помогает, выкладывать на общедоступный ресурс то, что я сделал? Ведь в рамках этой переписке проблематично будет расписывать все подробности (мне так кажется). Проще куда-то выложить, где вы при желании могли бы ознакомиться с наработками, сделать замечания или что-то подправить. Не посоветуете, как этот вопрос решить?
И если можно, еще. Встал в раздумье. Что же все же использовать - MySQL или FireBird? Для тестирования моего приложения мне понадобится локальный сервер. Почитав на эту тему, я подумал, что правильней будет иметь связку Apache + PHP + MySql + windows 7, но вижу другие рекомендации. Можете ли вы мне разъяснить в чем мое недопонимание? FireBird как я понимаю, это та же InterBase, только бесплатная? По своим возможностям (с учетом возможных моих изменений в программе в будущем) она лучше (или не уступает) MySql ? задаю такие глупые вопросы, так как ни с одной не имел дело. Максимум, на что меня хватало в свое время - это на локальную базу написанную на Делфи 7 с использованием BDE.
Ответить с цитированием
  #13  
Старый 05.09.2012, 10:34
Аватар для Lost_Fish
Lost_Fish Lost_Fish вне форума
Начинающий
 
Регистрация: 21.07.2011
Адрес: Новосибирск
Сообщения: 103
Версия Delphi: Delphi 7,XE2
Репутация: выкл
По умолчанию

По файрбёрду смогу поподсказывать, по мускулу нет, через php данные отлично тянутся и с птицы и с мускула, локальный сервак без проблем поднимается на птице.

P.S. если твой выбор совпадёт с моим поделюсь так-же компонентами как чужими так и своими
__________________
Код сырец

Последний раз редактировалось Lost_Fish, 05.09.2012 в 11:23.
Ответить с цитированием
  #14  
Старый 05.09.2012, 11:30
Mediv Mediv вне форума
Прохожий
 
Регистрация: 24.05.2012
Сообщения: 25
Репутация: 10
По умолчанию

Наша команда реализовала такой проект в масштабе города миллионника.

Используемые технологии:
- СУБД Oracle
- Собственный нативный web-сервер приложений пишущийся на Delphi c генерацией клиентского контента на JavaScript (на рабочих местах тонкий клиент - Google Chrome)
- отчетная система FastReport (порядка 200 отчетов)

Функционал:
- биллинговая часть, отвечающая за начисления
- подсистема взаиморасчетов с поставщиками услуг
- платежная подсистема (стыковки с банками, терминалами)
- подсистема управления паспортными столами (информация о регистрации граждан для передачи кол-ва проживающих в биллинг для расчета начислений)
- подсистема импорта/экспорта по обмену данными со сторонними АИС (около 30 разнородных сторонних подсистем)
- отчетная подсистема предоставляющая возможность формировать отчеты как в WEB так и стандартно под win32/64 (порядка 200 отчетов)

Пользователи (порядка 300 рабочих мест):
- Управляющие компании
- Поставщики ресурсов
- Административные органы
- Органы соцзащиты населения

Состав команды:
- Руководитель проекта - 1чел (координация разработки всех подсистем)
- Руководитель технической поддержки и постановщик задач - 1чел
- Проектировщик СУБД ORACLE и всей математики расчетов -1чел (но очень профессиональный)))))))
- Разработчик пользовательских интерфейсов и сервера приложений - 1чел
- Проектировщик и разработчик паспортного стола - 1чел
- Разработчики отчетов - 2чел
- Разработчик подсистем импорта-экспорта данных - 1чел
- Разработчик комплекса платежной подсистемы - 1чел
- Техническая поддержка (поддержка удаленных мест пользователей) - 2чел
- Системный администратор/оптимизатор БД - 1чел (а вообще это полноценный ORADBA + проектировщик сети)

Сроки реализации:
- предварительная подготовка - 1 год (проектировка, прикидка и написание отдельных подсистем)
- реализация и промышленный запуск - 1 год
- и конца и края по большому счету не видно..... новые постановления по расчетам, например 354 ))))))

PS: 2 года разработки и промышленный запуск:
- это с учетом того что команда сработалась в данном составе в данной специфике в предшествующие 2 года, итого можно считать 4 года
- на протяжении всего времени идет постоянная четкая и жесткая координация всего проекта

PPS: Финансовые затраты думаю сможете посчитать сами

PPPS: Очень много осталось за кадром))))

ИТОГО: 1чел с DelphiXE - Утопия (без обид).
Ответить с цитированием
  #15  
Старый 05.09.2012, 11:38
Аватар для Aristarh Dark
Aristarh Dark Aristarh Dark вне форума
Модератор
 
Регистрация: 07.10.2005
Адрес: Москва
Сообщения: 2,906
Версия Delphi: Delphi XE
Репутация: выкл
По умолчанию

Цитата:
Сообщение от Mediv
ИТОГО: 1чел с DelphiXE - Утопия (без обид).

Ему не требуется для города-миллионника, а упростить себе жизнь (в рамках ТСЖ например) - вполне реально.
Я писал подобное (там не требовалась многопользовательская система) для небольшой управляющей компании (несколько общежитий, порядка 1500 л/с) - вполне реализуемо.
__________________
Некоторые программисты настолько ленивы, что сразу пишут рабочий код.

Если вас наказали ни за что - радуйтесь: вы ни в чем не виноваты.
Ответить с цитированием
Этот пользователь сказал Спасибо Aristarh Dark за это полезное сообщение:
tadalex (01.12.2020)
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 22:13.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter