Помогите с выбором БД, способа доступа и вообще с проектированием..

Тема в разделе "Delphi - Базы данных", создана пользователем vital, 28 окт 2007.

  1. vital

    vital Больной Компом Детектед
    Команда форума Web Team

    Регистрация:
    29 янв 2006
    Сообщения:
    2.474
    Симпатии:
    27
    Уф.. С чего бы начать.. Требуется написать программу с к-ой будет работать достаточно большое кол-во людей, работа будет связана с некоей базой данных которая должна естественно быть у всех одинаковой.

    Из-за, скажем так, причуд заказчика поставить бд на один сервер в нете(локалки нет и быть не может) и потом просто юзверей подключать как клиентов к этой бд - нельзя. Соответственно на каждую юзверевскую машину нужно ставить серверную часть бд. Вот отсюда требования=>проблемы

    Инсталляция должна быть уровня "домохозяйка".
    Как можно меньший размер дистрибутива.
    Не большое сжирание траффика.

    Должен быть простой способ синхронизации.(Пока все что придумал - это делать SQL дамп базы а потом просто этот файл рассылать юзверям по мылу, которые этот файл посредством чего-то уже мной написанного и выполнят)
    Предполагается 2-3 таблицы. Записей будет тоже не много, я думаю не больше тысяч 20. Запросы к бд тоже сложными не будут. (Тут подходит все подряд..)

    По поводу способа доступа. Очень хочется использовать BDE ибо просто и умею. Но опять же - нужно его каждому юзверю инсталлировать. ВЛОМ мне писать лишний код, да и хз как правильнее это сделать. С ADO я не общался, отправьте плиз на документ где написано как и с чем его едят. И еще момент.. Потом, на какой-то стадии нужно будет нек-ые данные из этой(этих??) бд экспортировать в другую базу на MySQL.

    Проще всего, конечно, заставить всех себе поставить MySQl, но блин.. это извращенство. Может есть выход по-изящнее?
    И последнее. С БД по жизни я общаюсь не часто, просьба ногами в голову не бить если что..
     
  2. Silver Wind

    Silver Wind Гость

    Какие извращенцы такие задания дают. Может всетаки убедить клиента что он неправ? Потому как с синхронизацией тут будет гемороя до и больше. Что если 2 юзверя изменят одну запись - что делать и т.д.

    А по сути если нужен будет экспорт в MySQL, то, имхо, на MySQL и делай. Компонент для работы с MySQL без BDE хватает. Инсталлируется тоже просто, размер инсталляшки для версии 3.23 ~9М, а больше тебе для подобной задачи и не надо.
     
  3. onyx

    onyx Гость

    Есть такая локальная база данных - VolgaDB. Отличное решение для мелких проектов, работает очень быстро, код на Дельфи, не требеут ADO, ODBC, BDE и т.п. Имеет свои компоненты, совместимые с TTable и т.д.

    Официальный сайт здесь: http://www.volgadb.com

    Ранее это был shareware продукт, а сейчас он под GPL и поставляется со всеми исходниками.

    Кстати - это на сегодняшний день единственная локальная база для Kylix/Linux которая работает без всяких прыжков с бубном в ввиде настроек драйверов, да и вообще под Linux нет толком локальных баз данных).

    Были сравнения на производительность данной базы данных со стандартными типа BDE+Paradox, BDE+DBase, ADO+MS Access. На небольших таблицах (до сотни тысяч записей) Volga DB существенно обгоняет все остальные системы.
     
  4. onyx

    onyx Гость

    Сам юзал. Если нужен код могу поомочь...
     
  5. European

    Регистрация:
    4 сен 2006
    Сообщения:
    2.580
    Симпатии:
    0
    <!--QuoteBegin-Silver Wind+28:10:2007, 15:41 -->
    <span class="vbquote">(Silver Wind @ 28:10:2007, 15:41 )</span><!--QuoteEBegin-->Какие извращенцы такие задания дают.
    [snapback]83323" rel="nofollow" target="_blank[/snapback]​
    [/quote]
    Не такое уж и ненормальное задание. Думаешь клиенты очень заботятся о красоте архитектуры?<!--QuoteBegin-Silver Wind+28:10:2007, 15:41 -->
    <span class="vbquote">(Silver Wind @ 28:10:2007, 15:41 )</span><!--QuoteEBegin-->Может всетаки убедить клиента что он неправ?
    [snapback]83323" rel="nofollow" target="_blank[/snapback]​
    [/quote]
    Клиент всегда прав...<!--QuoteBegin-vital+28:10:2007, 00:48 -->
    <span class="vbquote">(vital @ 28:10:2007, 00:48 )</span><!--QuoteEBegin-->Должен быть простой способ синхронизации.
    [snapback]83304" rel="nofollow" target="_blank[/snapback]​
    [/quote]
    Основная проблема при такой синхронизации - изменение пользователями одной записи. Конфликты можно решать 2 способами: автоматическим, при этом каждому пользователю может быть назначен некоторый приоритет, и ручным, при этом желательно написать дополнительную утилитку, которая будет показывать данные до изменения и изменения каждого пользователя.
    Далее... После того как все пользователи прислали свои изменения, кто-то, назовем его оператор, должен все данные принять в свою базу, а только после разослать клиентам изменения. Следовательно, с момента отправки пользователем изменения до получения данных от оператора, пользователь не может вносить изменения. При этом клиенты очень часто такие рас...дяи, один может обещать прислать данные неделю, а все остальные будут ждать.
    <!--QuoteBegin-vital+28:10:2007, 00:48 -->
    <span class="vbquote">(vital @ 28:10:2007, 00:48 )</span><!--QuoteEBegin-->Пока все что придумал - это делать SQL дамп базы а потом просто этот файл рассылать юзверям по мылу, которые этот файл посредством чего-то уже мной написанного и выполнят
    [snapback]83304" rel="nofollow" target="_blank[/snapback]​
    [/quote]
    SQL дамп всей базы это лишнее. Делаешь в таблице дополнительное поле с датой изменения, поле заполняет триггер на добавление или изменение. По этому полю и находишь данные, измененные после последней синхронизации.
    <!--QuoteBegin-vital+28:10:2007, 00:48 -->
    <span class="vbquote">(vital @ 28:10:2007, 00:48 )</span><!--QuoteEBegin-->Проще всего, конечно, заставить всех себе поставить MySQl, но блин.. это извращенство
    [snapback]83304" rel="nofollow" target="_blank[/snapback]​
    [/quote]
    Почему, что-то я не понял?

    Короче, будут вопросы - пиши в Асю, поделюсь опытом <_<
     
  6. Kmet

    Kmet Well-Known Member
    Java Team

    Регистрация:
    25 май 2006
    Сообщения:
    1.018
    Симпатии:
    1
    имхо, не стоит изобретать велосипед. написать достойный механизм асинхронной репликации не так легко.
     
  7. vital

    vital Больной Компом Детектед
    Команда форума Web Team

    Регистрация:
    29 янв 2006
    Сообщения:
    2.474
    Симпатии:
    27
    2onyx
    Посмотрю обязательно. Код нужен, чуть позже уже скасажу конкретно.
    European
    Ещё вот поговорю с "клиентом" там посмотрим.. Вопросов будет много)
     
Загрузка...
Похожие Темы - Помогите выбором БД
  1. Valimor
    Ответов:
    11
    Просмотров:
    5.530
  2. whs
    Ответов:
    7
    Просмотров:
    5.211
  3. Vadik(R)
    Ответов:
    13
    Просмотров:
    10.733
  4. acorn
    Ответов:
    14
    Просмотров:
    7.346
  5. artem4486
    Ответов:
    8
    Просмотров:
    29

Поделиться этой страницей