#1 17.06.09 15:33
Выбор БД и программирование клиента БД
Цель проекта: создание единой базы данных с количеством записей в основной таблице порядка 50 тыс. Записи без блобов и всякой другой несуразицы.
Структура: общая база на головном сервере, конечным пользователям локальная база, клиент к этой базе.
Вопросы к знатокам.
Какую БД выбрать для головной базы, с учетом что основными операциями будут insert и select(выборка по одной таблице, возможно с join-ами)? Я про скоростные характеристики говорю в основном, ну и отказоустойчивость интересует. Есть опыт работы с MySQL(доволен).
Какую БД выбрать для клиентов(возможно даже embedded), если у них такие же операции основные? Но embedded потенциально может в дальнейшем не подойти, т.к. может потребоваться многопользовательский доступ, да и к отказоустойчивости доверия нет. Основное требование к базе - размер. Второстепенное - отсутствие лишних кликов по установке(аля дополнительно ODBC-драйвер, настройка поставщика данных и т.д.). Надо чтобы клиент к этой БД потом сам установился в наименьшее количество кликов и вопросов вместе с самой БД.
Какие проблемы могут вылезти при написании функции синхронизации(вернее, односторонняя синхронизация - скидывать данные в головную базу через N-ое время)?
И самое главное - программирование. Я имею очень маленький опыт работы с программированием под Win32. Правил/дополнял чужой код на Delphi 7. Но очень способный и готов изучить хоть assembler(шутко :)).
Какую IDE выбрать, сам не знаю. Делфи не рулит, C++ так или иначе может пригодиться в будущем(я хоть и админ, но нынче программить дороже будет :)). Поэтому нужно канеш Visual. Но я в вижуале посмотрел для C++ че и как. Работать с формами можно только при создании проекта Windows Forms. При первом непристальном изучении - это работает с .Net. Сам про дотнет аще пока толком ничего не знаю, поэтому есть подозрение что вариант не столь хороший - придется дополнительно еще и дистриб дотнета тянуть. А размер клиента, еще раз повторюсь, критичен.
Вот такие вопросы, господа. :)
P.S. Все восклицания типа зачем мне это надо и вообще лучше оставить эту работу настоящим программистам отвергаются на корню - мне самому за работу заплатят и за поддержку дальнейшую еще и денег к ЗП накинут. И я уже упомянул, что программить сейчас прибыльнее. Может профиль работы поменяю когда-нить. :)
Offline
#2 18.06.09 00:34
Re: Выбор БД и программирование клиента БД
клиент: C# + MSSQL (embedded вариант делается не так сложно, как ты это описал)
база на сервере: выбирать надо с учетом твоих планов на будущее, иначе столкнешься с тем, что надо будет переписывать заново с новой технологией... а тут многое зависит от среды обитания и финансов... любая, на твой выбор...
Offline
#8 18.06.09 11:08
Re: Выбор БД и программирование клиента БД
LORiO, спасибо, но java сразу нет. MySQL? А ты знаешь сколько сервер весит? Вооот. Не подойдет. Для головной базы - 100% буду юзать MySQL. Клиенты. У них максимум в основной таблице по 5к записей будет, так что монстров типа MySQL, Oracle не стоит советовать. ;)
Offline
#10 18.06.09 13:16
Re: Выбор БД и программирование клиента БД
LORiO, не, не, не. Я чет как-то предвзято к прослойкам типа джавы отношусь. Нативный код шустрее. Но, для ускорения процесса написания могу и с дотнетом поработать.. А вот MSSQL Compact так то вроде на первый взгляд подходит. Да и интегрироваться с Visual должен шустрее.
Но, с другой стороны. Если у меня в головной будет MySQL, то имеет смысл использовать одинаковые базы. Дабы не проделывать лишнюю работу.
Offline
#11 18.06.09 14:04
Re: Выбор БД и программирование клиента БД
у mysql дибильная репликация... тебе придется свои алгоритмы писать для синхронизации данных... я бы остановил свой выбор на MSSQL... Express и Compact версия бесплатная...
Код::
Microsoft SQL Server Compact is a free SQL Server embedded database ideal for building standalone and occasionally connected applications for mobile devices, desktops, and Web clients.
есть у нее конечно ограничения, но тебе они не страшны под твои задачи... фрэймворк в винду встроен сейчас уже минимум 1.1 версии (это при сп2, а при сп3 дотнет вроде 2.0 впаян)... а если человеки делают обновления, то и 3.5 уже давно у всех стоит(рантайм версия че-то около 30 метров весит)... в любом случае - поддержка фрэймворка не твоя забота....
Исправлено Jaguar (18.06.09 14:15)
Offline
#12 18.06.09 14:15
Re: Выбор БД и программирование клиента БД
Jaguar написал(а):
я бы остановил свой выбор на MSSQL... Express версия бесплатная
На головной машине FreeBSD, так что делай выводы. :) Можно канеш коннект и пробрасывать на виндовую машину в случае чего.
Jaguar написал(а):
в любом случае - поддержка фрэймворка - не твоя забота
Ну.. Моему начальству это не докажешь, когда у клиентов работать не будет. Клиенты разбросаны по районам области. Компьютерная грамотность невысокая. Техподдержки своей возможно и нет. Я техподдержку предоставлять не собираюсь. Надо чтобы работало на голой системе с WinXP SP2. Думаю на СП2 о фреймворке и речи не было. Так что Макс - это все сложнее..
Трудностей чет дофига. Хоть на делфях не начинай кодить. :)
Offline
#13 18.06.09 16:40
Re: Выбор БД и программирование клиента БД
GreenDay написал(а):
Надо чтобы работало на голой системе с WinXP SP2. Думаю на СП2 о фреймворке и речи не было.
фреймворк можно тянуть из инета во время установки, можно подсовывать вместе с инсталлером, если у юзеров нет инета (но он весит чуть больше 20 мб). по-крайней мере я гружу с инета через инносетап обычно.
по клиентской базе смотрел sqlite? на хабре были статьи с обзор производительности. она себя очень хорошо показала, места много не жрет и никаких проблем с установкой - подсунуть дллку с приложением и все.
Offline
#14 18.06.09 16:54
Re: Выбор БД и программирование клиента БД
Muxa, 20 Мб из какой нить Усть-Тарки с возможным инетом типа диал-ап. Смеешься? У меня у родителей дома до сих пор диал ап - это пистетц. Ну да, скачается 20 Мб за полчаса. Чет как-то не позитивно..
sqlite я тоже рассматривал как вариант. Но думаю для клиентов будет все же идеальным MS SQL Compact - никаких дополнительных коннектров не надо. Удобнее прогать все же.
А дальше самому писать клиент синхронизации с головным сервом.
Offline
#15 18.06.09 18:58
Re: Выбор БД и программирование клиента БД
наблюдаю пример неправильного мышления! :)
нужно написать хорошую, годную, непадучую программу; собрать установочный пакет, в котором будет всё необходимое; записать его на диск и выслать любым доступным способом в нужное место
это я все к тому, что ограничение по объему - оно надуманное.
если хочется мускуль, то почему нет?
си-диез в общем то вполне подходит для такой ситуации, с непривычки на с++ можно написать программу, крайне зависимую от метеоусловий -- кому это надо?
а отказоустойчивость обеспечивается резервным копированием, да
Offline
#16 18.06.09 19:16
Re: Выбор БД и программирование клиента БД
Matrim, а ты embedded mysql не щупал руками?
Отзывы нужны как оно. :) Про полноценный то я знаю, а вот встроенный не щупал.
Про объем. Ну, думаю все же выкрутимся как нить. 22 метров фреймворка + embedded база + прога. В итоге все же не так много..
Терь короче интересует вопрос связи MySQL и C#.
А так же хорошую книгу по шарпу.
Offline
#17 18.06.09 21:07
#18 18.06.09 23:28
#19 18.06.09 23:48
Re: Выбор БД и программирование клиента БД
С такими критериями вообще непонятны проблемы с БД. Одно дело если эти 50 тыщ записей будут сто раз за минуту меняться, а другое если раз в месяц выгрузку делают.
На сервер ставь ту, с которой больше общался. На клиента отсылай, как уже сказали, самодостаточную БД. Общаться то все равно будут через посредника.
Кстати, а размер "нормально" - это сколько?
Выбираешь м\у С++ и .NET не по тем критериям, имхо. Писать, тестировать, сопровождать - тебе, так что выбирай тот язык к которому лежит душа. Если до этого десять лет фиксил Дельфи, чего думать - пиши на нем. Пофик что все кричат уродина, зато этот инструмент ты знаешь.
И кстати, IDE - это не Дельфи, С++ или .NET. Рассуждения в подобном русле пугают, и становится страшно за твой проект :)
Исправлено Malkolm (18.06.09 23:48)
Offline
#20 19.06.09 00:07
#21 19.06.09 00:09
Re: Выбор БД и программирование клиента БД
Про IDE начал рассуждения просто из помыслов, что буду писать на C++. И тут на выбор две IDE - RAD Studio или Visual Studio.
Так понятней? :) В контексте не сочеталось немного. :)
Malkolm написал(а):
Пофик что все кричат уродина, зато этот инструмент ты знаешь.
Я в первом посте написал почему стремлюсь писать на C++ или том же шарпе. Delphi нигде не востребован. Для изучения азов программирования - идеальный вариант, как и паскаль для консольного(я имею ввиду не игровую консоль, типа Xbox :)) программирования. Для серьезных вещей - на любителя.
Offline

