Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2005.07.11;
Скачать: [xml.tar.bz2];

Вниз

Структура хранения данных для клинета форумов.   Найти похожие ветки 

 
Alexander Panov ©   (2005-05-19 17:32) [0]

Может ли кто предложить вариант хранения информации для форумов сайта "Мастера Delphi".
Все реализованные решения клиентских программ на сегодняшний день не лишены недостатков.

1. DMClient.

Вся информация хранится в текстовых файлах.

Плюсы:
  + Не привязан к какому-либо движку БД.
  + Информация доступна для просмотра обычными редакторами
  + Надежность сохранности данных.
Минусы:
  - Огромное количество текстовых файлов
  - Сложность реализации алгоритма индексирования и поиска.

2. Dolphin

Вся информация хранится в БД MSSQL или MSAccess.

Плюсы:
  + Высокая скорость доступа к данным и поиска.
  + Надежность сохранности данных(в случае MSSQL).
Минусы:
  - Необходимо наличие движка СУБД.
  - Нет возможности просмотра текстовых файлов

3. Magic Forum

Вся информация хранится в БД FireBird Embedded.

Плюсы:
  + Высокая скорость доступа к данным и поиска.
  + Нет необходимости предустановленной СУБД.
Минусы:
  - Необходимо наличие дополнительных DLL с движком БД.
  - БД не находится в состояни готовности по первому запросу.
  - Нет возможности просмотра текстовых файлов
---------------------------------------------------------

Хотелось бы структурировать информацию подобно DMClient(в текстовых файлах), но количество файлов уменьшить до минимума.


 
Ega23 ©   (2005-05-19 17:35) [1]

Одних плюсов без минусов не бывает.
ИМХО, 3-й вариант - наиболее удобный. Можно, кстати, совместить 1 и 3.


 
Alexander Panov ©   (2005-05-19 17:45) [2]

Ega23 ©   (19.05.05 17:35) [1]
ИМХО, 3-й вариант - наиболее удобный.


Почему мне не нравится такой вариант:

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


 
Alexander Panov ©   (2005-05-19 17:46) [3]

Ega23 ©   (19.05.05 17:35) [1]

А какие варианты совмещения?


 
Ega23 ©   (2005-05-19 17:59) [4]

2 Alexander Panov ©   (19.05.05 17:46) [3]
А какие варианты совмещения?

Ну, к примеру, кольцевой буфер на N последних сообщений в текстовом файле.

Во, XML как вариант.
Кстати, насколько я понял, Кузнецов курирует наш Open Source проект Sedna (СУБД на основе XML). Вроде даже успешный проект.


 
Alexander Panov ©   (2005-05-19 18:04) [5]

Ega23 ©   (19.05.05 17:59) [4]

Судя по тому, какова скорость работы с XML и объем дополнительной информации для хранения данных, для большгих объемов XML не подойдет.


 
Ega23 ©   (2005-05-19 18:08) [6]

2 Alexander Panov ©   (19.05.05 18:04) [5]

Саш, тогда сформулируй требования.
Типа, объём базы - такой-то, производительность - такая-то.
Данные, в конце-концов, можно архивировать.


 
Alexander Panov ©   (2005-05-19 18:15) [7]

Ega23 ©   (19.05.05 18:08) [6]

Объем - от 100Мб и выше.


 
Polevi ©   (2005-05-19 18:17) [8]

MS Access


 
Alexander Panov ©   (2005-05-19 18:19) [9]

Polevi ©   (19.05.05 18:17) [8]
MS Access


Опять же из опыта работы с одной из банковских программ, использующих Бд Access - падает она иногда... жестоко падает.


 
Polevi ©   (2005-05-19 18:49) [10]

>Alexander Panov ©   (19.05.05 18:19) [9]
я тоже знаком с некоторыми "банковскими программами"
что там только не падает


 
Alexander Panov ©   (2005-05-19 18:57) [11]

Polevi ©   (19.05.05 18:49) [10]

При сбоях(снятие процесса, отключение питания) иногда портится структура БД.


 
Polevi ©   (2005-05-19 19:02) [12]

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


 
Alexander Panov ©   (2005-05-19 19:06) [13]

Polevi ©   (19.05.05 19:02) [12]

А как MSAccess по скорости при больших объемах?


 
Polevi ©   (2005-05-19 19:31) [14]

для данной задачи хватит, с учетом того что база локальная


 
Petr V. Abramov ©   (2005-05-20 00:53) [15]

Alexander Panov ©   (19.05.05 17:32)  
> Минусы:
>   - Необходимо наличие дополнительных DLL с движком БД.
 1-2 халявных DLL? Решается наличием инсталлятора :)
>  - БД не находится в состояни готовности по первому запросу.
 Растолкуй
>  - Нет возможности просмотра текстовых файлов
 Проблемы приложения, а не БД. Можно и на Oracle такой приложение создать. "А если сунешь четвертак, то он сыграет и не так" :)


 
Anatoly Podgoretsky ©   (2005-05-20 08:57) [16]

2. Dolphin
Плюсы:
Минусы:
 - Необходимо наличие движка СУБД.
Чем отличие от FB, в обеих случаях нужен движок. Инсталяция сводится к двойному щелчку по MDAC.EXE

3. Magic Forum
Плюсы:
 + Нет необходимости предустановленной СУБД.

Это как? Чем отличие от MSSQL?
Предустановленая СУБД нужна в обеих случаях. Инсталяция делает запуском простого BAT файла. Смотри примеры развертывания MSDE и баз данных Nortwith и Pubs. Все что поставляетя это дистрибутив MSDE и набор скриптов.

Минусы:
 - Необходимо наличие дополнительных DLL с движком БД.
Это требование относится к обеим базам.
 - БД не находится в состояни готовности по первому запросу.
Это не понятно
 - Нет возможности просмотра текстовых файлов
Непонятно это еще зачем, аттачи в форуме отсутствуют. Разъясни этот пункт, но это относится к очень простым функциям на клиентской стороне, или ты про экспорт/импорт данных MSSQL это делает очень хорошо, думаю и FB не хуже.

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

Достоинство MSDE может являть то что фронт эндом может являться Акцесс и даже тестовые примеры из Дельфи.


 
Danilka ©   (2005-05-20 09:56) [17]

- Нет возможности просмотра текстовых файлов
А шо это за зверь? :)
Еще один плюс забыл у последних двух:
+ Возможность залезть в базу и попросить на сиквеле все что захочецца: статистику, сложный поиск и т.д.


 
Anatoly Podgoretsky ©   (2005-05-20 09:57) [18]

Danilka ©   (20.05.05 09:56) [17]
Full Tesxt Search


 
Bronco ©   (2005-05-20 10:11) [19]


>
> Хотелось бы структурировать информацию подобно DMClient(в
> текстовых файлах), но количество файлов уменьшить до минимума.

ИМХО, если нужно кол-во файлов уменьшить до минимума, то либо FB EMBedded либо Yaffil Personal.
Всего два файла - gds32.dll + сам файл БД в той же директории.
По структуре таблиц сказать ничего не могу, но подозреваю что можно по большому счету обойтись двумя :-)


 
Sergey13 ©   (2005-05-20 10:21) [20]

DBF+встроеный движок типа Хальциона.
+
Средств "просто просмотра" чуть меньше чем для текста.
Все таки Бд.
Никаких "лишних" файлов.


 
Bronco ©   (2005-05-20 10:27) [21]


> Sergey13 ©   (20.05.05 10:21) [20]

Я тоже сначала хотел предложить DBF с компонентами прямого доступа. Но так вроде файлов больше получится, а Панову меньше надо :-) Да и SQL в Хальсионе отсутствует, что тоже неудобно.


 
Sergey13 ©   (2005-05-20 10:30) [22]

2[21] Bronco ©   (20.05.05 10:27)
>Но так вроде файлов больше получится
Почему? Я предполагал, что все ТХТ-шники лягут в МЕМО поля одного файла.


 
Alexander Panov ©   (2005-05-20 11:46) [23]

[16] Anatoly Podgoretsky ©   (20.05.05 08:57)
3. Magic Forum
Плюсы:
+ Нет необходимости предустановленной СУБД.

Это как? Чем отличие от MSSQL?


Для работы FB Embedded нет необходимости устанавливать отдельно СУБД, как с MSSQL.

Предустановленая СУБД нужна в обеих случаях. Инсталяция делает запуском простого BAT файла. Смотри примеры развертывания MSDE и баз данных Nortwith и Pubs. Все что поставляетя это дистрибутив MSDE и набор скриптов.

Многих(в том числе и для меня) установка дополнительных средств в систему не очень радует.

- БД не находится в состояни готовности по первому запросу.
Это не понятно


В случае FB Embedded время отклика от базы зависит от того, давно ли было последнее обращение к базе. В случае, если обращений давно не было, необходимые библиотеки, сама база вытесняются из памяти. Следовательно, для первого обращения после перерыва в использовании время отклика резко увеличивается.

- Нет возможности просмотра текстовых файлов
Это я неправильно сформулировал.
имелось ввиду - "Нельзя содержимое веток и постингов посмотреть обычным текстовым редактором"

Разъясни этот пункт, но это относится к очень простым функциям на клиентской стороне, или ты про экспорт/импорт данных MSSQL это делает очень хорошо, думаю и FB не хуже.
В случае с DMClient промежуточный этап экспорта отсутствует - информация доступна сразу.

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

Достоинство MSDE может являть то что фронт эндом может являться Акцесс и даже тестовые примеры из Дельфи.


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

[17] Danilka ©   (20.05.05 09:56)
Еще один плюс забыл у последних двух:
+ Возможность залезть в базу и попросить на сиквеле все что захочецца: статистику, сложный поиск и т.д.


Получение статистики можно реализовать и в самой программе, для этого необязательно иметь полноценную СУБД(прицины уже написал выше).

[19] Bronco ©   (20.05.05 10:11)

ИМХО, если нужно кол-во файлов уменьшить до минимума, то либо FB EMBedded либо Yaffil Personal.
Всего два файла - gds32.dll + сам файл БД в той же директории.
По структуре таблиц сказать ничего не могу, но подозреваю что можно по большому счету обойтись двумя :-)


Под минимальным количеством файлов подразумевался порядок их числа - десятки или сотни, но не тысячи и сотни тысяч.

[20] Sergey13 ©   (20.05.05 10:21)
DBF+встроеный движок типа Хальциона.
+
Средств "просто просмотра" чуть меньше чем для текста.
Все таки Бд.
Никаких "лишних" файлов.


От DBF думаю отказаться сразу, так как работа с неродным движком(например, FoxPro 2.6) не вызывает удовольствия из-за скорости, да и объемы данных для DBF великоваты.
Кроме этого, пока не знаю движков для DBF с полноценным SQL.


 
Sergey13 ©   (2005-05-20 11:58) [24]

2 [23] Alexander Panov ©   (20.05.05 11:46)
А зачем вообще все это? Пишется новый клиент или это "для внутреннего пользования"? Или еще чего?
Я к тому, что для локальной проги/БД с несложной структурой SQL вобщемто не ахти как и нужен. ИМХО.


 
Alexander Panov ©   (2005-05-20 12:08) [25]

>[24] Sergey13 ©   (20.05.05 11:58)
А зачем вообще все это? Пишется новый клиент или это "для внутреннего пользования"? Или еще чего?
Я к тому, что для локальной проги/БД с несложной структурой SQL вобщемто не ахти как и нужен. ИМХО.


Пишу своего клиента-)


 
Alexander Panov ©   (2005-05-20 12:11) [26]

А объемы - текущее состояние форума ~7000 файлов только с ветками форума ~19Мб размером.
А если экспортировать данные из моих архивов, то объем вырастет в десяток раз.


 
Sergey13 ©   (2005-05-20 12:18) [27]

2[25] Alexander Panov ©   (20.05.05 12:08)
>Пишу своего клиента-)
Тогда, ИМХО, наличие пары ДЛЛ-к никого из потенциальных пользователей не смутит. Для непонятливых (в смысле сложности установки) сужествуют браузеры, для других проблем нет.
Тогда мое предложение ФБ.
Кстати, недавно видел ссылку на http://www.delphiplus.org/

Fikret Hasovic: Выложена юнита для встраивания в программу на Delphi embedded версии СУБД Firebird (source, demo).

Я не смотрел, но может и полезное что.


 
Alexander Panov ©   (2005-05-20 12:22) [28]

Тогда мое предложение ФБ.

В MagicForum используется FB Emdedded.
К сожалению, вижу, что время доступа к БД значительно больше, чем к текстовым файлам.


 
Sergey13 ©   (2005-05-20 12:25) [29]

2[28] Alexander Panov ©   (20.05.05 12:22)
Я ничего не имею против этой проги (не юзал), но смею предположить, что это трудности этой конкретной проги, а не FB Emdedded.
Я и Оракла на колени ставил. 8-)


 
Sergey13 ©   (2005-05-20 12:32) [30]

В догонку. Никто ведь не настаивает именно на Emdedded. Если прога работает постоянно (а таких не мало 8-), то почему не использовать нормальный сервер?


 
Bronco ©   (2005-05-20 12:33) [31]


> Sergey13 ©   (20.05.05 12:25) [29]

Полностью согласен.
Правда сам использую Yaffil Personal, но разница между ними небольшая. Скорость доступа при наличии необходимых индексов, а так же правильном размере страницы - очень высокая.
Скажу даже больше. Объем моей базы - 12 Гб, при этом настроил все так, что летает пулей.
Так что вопросы по низкой скорости нужно задать Piter-у.


 
Anatoly Podgoretsky ©   (2005-05-20 12:34) [32]

Alexander Panov ©   (20.05.05 12:08) [25]
Тогда ограничиться FB/MSDE
Десктопные базы не для таких размеров.


 
Alexander Panov ©   (2005-05-20 13:30) [33]

Спасибо всем.
Пока для удобства и скорости разработки ограничусь реализацией интерфеса к текстовым файлам.
После отладки перейду к реализации доступа к имеющимся БД - MSSQL, FB, Fb Embedded, MS Access.
MSDE пока не устанавливал, но думаю, что надо попробовать будет.


 
VMcL ©   (2005-05-20 14:25) [34]

>>Alexander Panov ©   (20.05.05 13:30) [33]

Могу ошибаться, но у MSDE, вроде, есть ограничение на суммарный размер данных строки при INSERT/UPDATE.


 
Alexander Panov ©   (2005-05-20 14:26) [35]

Могу ошибаться, но у MSDE, вроде, есть ограничение на суммарный размер данных строки при INSERT/UPDATE.

Ну с MSDE я буду в последнюю очередь разбираться-)


 
Danilka ©   (2005-05-20 14:35) [36]

[33] Alexander Panov ©   (20.05.05 13:30)
> Пока для удобства и скорости разработки ограничусь реализацией
> интерфеса к текстовым файлам.

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

[23] Alexander Panov ©   (20.05.05 11:46)
> Получение статистики можно реализовать и в самой программе,
> для этого необязательно иметь полноценную СУБД(прицины уже
> написал выше).

С базой я могу сделать что угодно, мало-ли что мне захочецца? :)
Например, сегодня я захочу посмотреть у кого больше постов в "базах", завтра - список всех, кто употребил слово "террористы" отсортированый по дате сообщения, затем, по кол-ву постов с этим словом, послезавтра еще чего-нибудь. :) С текстом или жестко прописанными правилами на клиенте такого уже не сделаешь.


 
Anatoly Podgoretsky ©   (2005-05-20 14:44) [37]

VMcL ©   (20.05.05 14:25) [34]
Есть как на размер строки выдачи - 8060, так и на размер строкового поля 4000/8000

АДО позволяет работать с этим полем именно как со строкой, а не мемо полем.

Если говорить о клиенте форумов, то длина сообщения ограничена 5000 символов, тема и того меньше. В сумме в 8060 входит и еще остается. Если по какой то причине нужно больше, а такую причину я здесь вижу, то использовать поле типа Мемо, называется ntext, размер до 2 гб


 
Romkin ©   (2005-05-20 15:10) [38]

Я бы делал на FB embedded. Тут все уже сказано: стандартный инструмент, не требующий установки. И есть все преимущества полноценного сервера. Насчет вытеснения - всегда можно поставить  сервер, если скорость не устраивает, систему уж точно не корежит :)
Плюс - легче гораздо делать и поиск, и работать. Ну не приспособлена Delphi к работе с текстовыми файлами!
Скорость - действительно, это зависит от того, как сделано. MagicForum не видел, так что ничего насчет производительности сказать не могу... Могу сказать, что все очень зависит от структуры БД.
Плюс - возможность работать с БД напрямую, при желании. А закрытые форматы - да ну их!
И, кстати, в этом случае я бы делал покомпонентно - один компонент качает данные, второй - обеспечивает интерфейс.


 
Alexander Panov ©   (2005-05-20 15:18) [39]

И, кстати, в этом случае я бы делал покомпонентно - один компонент качает данные, второй - обеспечивает интерфейс.

Так и будет - для того, чтобы не привязываться к форматам хранения данных и к СУБД.-)


 
Romkin ©   (2005-05-20 16:07) [40]

Хм... Я бы наоборот, взял бы как хранилище FB, и уже к нему цеплял бы интерфейсы, в том числе и экспорта/импорта. НА мой взгляд, и проще, и легче :)



Страницы: 1 2 вся ветка

Форум: "Базы";
Текущий архив: 2005.07.11;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.58 MB
Время: 0.04 c
14-1118310091
WondeRu
2005-06-09 13:41
2005.07.11
Посоветуйте ПО для определения утечек памяти


5-1086668430
Gelios
2004-06-08 08:20
2005.07.11
Редактор свойств/компонент а-ла Fields Editor


14-1118649847
WondeRu
2005-06-13 12:04
2005.07.11
В чем смысл жизни?


5-1087226009
far
2004-06-14 19:13
2005.07.11
Управляемое сохранение свойств компонента


4-1115993273
Skier
2005-05-13 18:07
2005.07.11
Сообщения от скроллеров...





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский