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

Вниз

Выбор базы данных   Найти похожие ветки 

 
Piter   (2004-02-01 21:05) [0]

Вот хочу попросить совета - какую бы базу данных выбрать для хранения этого форума? Хочу написать клиента форума, а сами сообщения хранить в базе, естесственно.

Вот и думаю, какую базу выбрать с какой логикой?
Одна запись - один пост? Тогда поля будут Name, Email, Date, Text, NomerVetvi, NomerForuma... может, еще какие надо? С другой стороны, это сколько же будет записей, сколько постов во всех конференциях! Не заводить же отдельную базу для каждого форума...

или каждая запись - это отдельная ветвь? А как тогда посты хранить? Может, McSimm посоветует как у него реализовано и как лучше будет?

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

В общем - посоветуйте!


 
jack128   (2004-02-01 22:35) [1]


> какую бы базу данных выбрать для хранения этого форума?
>
Из уже существующих - есть варианты на аксесе, MSSQL и просто в файлах.(DMFC - не помню в чем, но помоему DBase)

> Вот и думаю, какую базу выбрать с какой логикой?
скачай Delphin - посмотри..


> С другой стороны, это сколько же будет записей, сколько
> постов во всех конференциях!
И в чем проблема?


> выдерживать я думаю объем не менее пары гигабайт)
Это архив форумов лет 5, нафиг такие объемы?

> если комп вырубится или зависнет - чтобы не полетела, как
> это Paradox часто делает
если комп вырубится по питанию, то ни какая СУБД тя не поможет


 
Piter   (2004-02-01 22:46) [2]

>если комп вырубится по питанию, то ни какая СУБД тя не поможет

Да помогать не надо - пусть некоторые данные пропадут, но чтобы при старте база могла продолжать работать. А то в Парадоксе помню часто "BLOB has modified" или как-то так :) И все, база не работает, пока специально не "починишь"


 
Piter   (2004-02-01 22:46) [3]

>если комп вырубится по питанию, то ни какая СУБД тя не поможет

Да помогать не надо - пусть некоторые данные пропадут, но чтобы при старте база могла продолжать работать. А то в Парадоксе помню часто "BLOB has modified" или как-то так :) И все, база не работает, пока специально не "починишь"


 
Piter   (2004-02-02 02:03) [4]

>Из уже существующих - есть варианты на аксесе, MSSQL

у меня есть условие - чтобы минимум инсталляции. Если я сделаю на MSSQL - это значит надо ставить саму MSSQL каждому, кто будет пользоваться моей программой! Не до фига ли это будет?

А насчет Access - ему много для инсталляции надо? И может ли он работать с SQL?

Вообще задача вот в чем. Ставится моя программа. При запуске она в произвольном каталоге должна создать произвольное число таблиц базы данных (пустых). И потом их заполнять. Хочется минимум инсталляции. Какая база мне подойдет? Также хочется поддержку SQL


 
Deniz   (2004-02-02 09:08) [5]

> jack128 © (01.02.04 22:35) [1]
> если комп вырубится по питанию, то ни какая СУБД тя не поможет


Это как понимать? Если у меня на сервере где работает Oracle/MSSQL/DB2/InterBase и т.д.(нужное подчеркнуть) вырубится питание(по различным причинам), то ВСЕ эти СУБД не восстановят работоспособность самостоятельно?
Это БРЕД!
Сам лично проверял на InterBase(правда давно на IB5.6), запускал длительные update и лично вырубал питание! Никаких проблем не было, после перезагрузки компа база в рабочем состоянии, нет только тех записей, которые не подтвердились по Commit!


 
Sergey_Masloff   (2004-02-02 09:16) [6]

Deniz © (02.02.04 09:08) [5]
>Это БРЕД!
>Сам лично проверял на InterBase(правда давно на IB5.6),
Сколько раз ты сделал проверку? 2? 3? Считаешь что достаточно? Наивный. База IB от таких действий полететь может. И летит регулярно. Причем не факт что ты это сразу заметишь. То есть ты подключаешься, коннектишься и даже работаешь. Пока не налетишь на битые блоки. Если лично ты с этим (еще) не встречался то это не значит что этого нет. Да, случается это не очень часто но это не значит что на это можно полагаться.


 
jack128   (2004-02-02 09:20) [7]


> Deniz © (02.02.04 09:08) [5]
А как ты проверял работоспособность базы после сбоя питания? Желательно backup/restore сделать.. В конце концов есть и такая штука как везение. А вообще 100% гарантию дает только морг и UPS ;-)


 
Deniz   (2004-02-02 13:15) [8]


> Sergey_Masloff (02.02.04 09:16) [6]
> jack128 © (02.02.04 09:20) [7]

Уговорили :)) Может конечно упасть база в бездну :)
Проверял не 1000 раз, но все же более 20 в разных вариантах, были такие ситуации. А поскольку проект левый(сторонний) и возможности появиться и backup/restore сразу нет, только по графику или как приеду. Может действительно повезло.


 
MV   (2004-02-02 13:22) [9]

FireBird. С отключением кэширования записи - для надежности, на случай падения питания. (Но ведь и винт упасть может - тогда RAID - массив спасет Отца Русской Демократии).
Насчет структуры - если все, как описано, то все уложится в 2 таблицы - ветви и посты. Посты ссылаются на ветви.

Все.


 
Sergey_Masloff   (2004-02-02 14:17) [10]

Deniz © (02.02.04 13:15) [8]
>Уговорили :)) Может конечно упасть база в бездну :)
>Проверял не 1000 раз, но все же более 20 в разных вариантах, >были такие ситуации. А поскольку проект левый(сторонний) и >возможности появиться и backup/restore сразу нет, только по >графику или как приеду. Может действительно повезло.
У меня сейчас порядка 800 установок. За 2 года (но год назад их было штук 300) - 2 случая такого краха. Вернее 3 но один "неподтвержденный" - трудно сказать что там на самом деле. Два - гарантированых.


 
Anatoly Podgoretsky   (2004-02-02 14:24) [11]

jack128 © (02.02.04 09:20) [7]
UPS не дает, есть программы одаренных программистов, которые препятствуют выключению системы.


 
Deniz   (2004-02-02 14:27) [12]

> Sergey_Masloff (02.02.04 14:17) [10]
> У меня сейчас порядка 800 установок


Ух ты! Круто ты попал на TV:)) без обид.

>За 2 года (но год назад их было штук 300) - 2 случая такого краха.

Делаем вывод, что вероятность краха достаточно мала!


 
Danilka   (2004-02-02 14:43) [13]


> > выдерживать я думаю объем не менее пары гигабайт)
> Это архив форумов лет 5, нафиг такие объемы?

думаю, не на 5 лет, а на 50. или на 500. :))


 
Fay   (2004-02-02 14:53) [14]

Если на фоне 5 гигов инфы цена UPS-а заметна, то это не инфа. Это фигня какая-то. Тогда эта база уже никому не нужна - можешь дальше не писать.


 
Sergey_Masloff   (2004-02-02 14:55) [15]

Deniz © (02.02.04 14:27) [12]
>Делаем вывод, что вероятность краха достаточно мала!
За что и нравится IB ;-)


 
Anatoly Podgoretsky   (2004-02-02 15:01) [16]

Deniz © (02.02.04 14:27) [12]
Какая бы вероятность не было, лишь одно важно, имеет ценность информация или нет, можно ее потерять или это не допустимо. Стоимость современных UPS очень маленькая, он спасет не только от полного пропадания электроэнергии, но и от скачков и помех. То есть его есть смысл ставить даже дома, без всяких баз, количество перезагружек резко снижается.


 
Sir Alex   (2004-02-02 15:18) [17]

Мой старый DMFC был сделан на MIDAS Flat-file (TClientDataSet).
Но слишком уж часто у него падают базы... вобщем фи...

Сейчас делаю новую версию на FireBird Embedded, класс, мне нравится. И база может быть большой и надежность высокая и дистрибутив маленький (относительно)...


 
Piter   (2004-02-02 15:50) [18]

FireBird тоже не подойдет. Ну все таки лишние 2-3 мегабайта, потом устанавливать ее надо, настраивать... думаю, далеко не каждый с этим будет заморачиваться. Я вот думаю не стал бы.

Насчет структуры - если все, как описано, то все уложится в 2 таблицы - ветви и посты

Да я тоже так думал.. а вот нужна ли эта дополнительная таблица с ветвями? Зачем? Есть ветвь - есть и посты в ней, у каждого поста есть id - к какой ветви он относится... я думаю так. Может, не учитываю что-нибудь?

У меня еще такой вопрос, кто что думает, id стоит хранить в текстовом виде или в числовом? Например, у этой ветви id=1075658717


 
Piter   (2004-02-02 16:08) [19]

> > выдерживать я думаю объем не менее пары гигабайт)
> Это архив форумов лет 5, нафиг такие объемы?

думаю, не на 5 лет, а на 50. или на 500. :))


Нда, вы уверены? Вы не по дайджестам смотрите? Ведь в базе информация не упакована rar"ом! Помните ветку "Любая тема ветки" - она одна занимает наверное мегабайт 20. Хотя если у кого давно стоят клиенты форумов - поделитесь, до каких размеров база разрослась и какие форумы под котролем?


 
dmtr   (2004-02-02 17:28) [20]

2 Piter
Позволь такой нескромный вопрос - для каких целей пишится программа?


 
MV   (2004-02-02 17:45) [21]

Piter © (02.02.04 15:50) [18]
FireBird тоже не подойдет. Ну все таки лишние 2-3 мегабайта, потом устанавливать ее надо, настраивать... думаю, далеко не каждый с этим будет заморачиваться. Я вот думаю не стал бы.

По-моему, ничего более компактного из SQL серверов не найдете!
Установка - если Embedded, то одна единственна я .dll в той же директории, что и программа. И ВСЕ. (Только что сжал ее RAR - ом, получилось 580 кБ). Все на одну дискетку влезет.


 
jack128   (2004-02-02 18:36) [22]


>
> Sir Alex © (02.02.04 15:18) [17]
круто, ждем с нетерпением.

> MV (02.02.04 17:45) [21]
> то одна единственна я .dll
ну не единственная. Файла три для Yaffil"а нужно все таки ;-)


 
MV   (2004-02-02 18:37) [23]

Для FireBird - 1.


 
jack128   (2004-02-02 18:53) [24]


> Для FireBird - 1.
а firebird.msg? ;-)


 
Michail Dalakov   (2004-02-02 19:25) [25]

To Sergey_Masloff (02.02.04 14:55) [15]
>Делаем вывод, что вероятность краха достаточно мала!
>За что и нравится IB ;-)

Давно не имел дело с IB и его клонами, закончил на IB5.6, но могу
порекомендовать проделать эксперименты на FAT32, 98 - идеальный вариант, при злом выключении - база падает 100% (по крайней мере на IB5.6). Тот же IB5.6 на NTFS никогда проблем не доставлял при любых отключениях.


 
Piter   (2004-02-02 21:28) [26]

dmtr © (02.02.04 17:28) [20]
2 Piter
Позволь такой нескромный вопрос - для каких целей пишится программа?


Вот блин. А слабо мой самый первый пост прочитать?

Установка - если Embedded, то одна единственна я .dll в той же директории, что и программа. И ВСЕ. (Только что сжал ее RAR - ом, получилось 580 кБ). Все на одну дискетку влезет

А можно поподробнее про этот Embedded?! Это сетевая база? То есть, у юзера должен сервер висеть? Могу я при запуске запускать сервер (чтоб он не давал признаков жизни, типа иконки в трее), а по завершении программы сервер вырубать?


 
jack128   (2004-02-02 22:35) [27]


> Могу я при запуске запускать сервер (чтоб он не давал признаков
> жизни, типа иконки в трее), а по завершении программы сервер
> вырубать?

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


 
Deniz   (2004-02-03 09:41) [28]

> Piter ©
Что-то не понятно, с базой будут работать несколько клиентов или один?
Если один, то FireBird emb/Yaffil pers подойдет, и достаточно скопировать пару DLL в папку/мамку программы.
Но если клиентов будет много, то придется сервер ставить, но это не сложно:
2.1. Required steps

If you don"t have a special setup program (it"s distributed
separately) the steps are the following:

- unzip the archive into the separate directory (since a few
file names were changed, it doesn"t make sense to unzip
v1.5 files into the directory with IB/FB1)
- change the current directory to <root>\bin (here and below
<root> is the directory where v1.5 files are located)
- run instreg.exe:
instreg.exe install
it causes the installation path to be written into the registry
(HKLM\Software\Firebird Project\Firebird Server\Instances)
- if you want to register a service, run also instsvc.exe:
instsvc.exe install
- optionally, you should copy both fbclient.dll and gds32.dll
to the OS system directory
И все :)


 
Sir Alex   (2004-02-03 12:36) [29]

2 Piter
ИМХО, если у тебя возникают вопросы такого уровня, то клиент хороший не получится... т.к. помимо просто выбора БД, будет еще куча непростых вопросов:
- Собственно выбор компонентов доступа к БД
- HTML Viewer (EmbeddedWB, HTMLite, HTMLViewer...)
- Сетевые компоненты (Indy, ICS, просто Sockets...)
- Многопоточная работа с БД и Internet
- Удобный интерфейс
- Функциональность клиента (Полнотекстовый поиск, отправка сообщений, отслеживание перемещений сообщений, анкеты... и т.д. и т.п.)
Вот при правильном подборе этих параметров, получится хороший клиент...(ИМХО)

2 jack128 © (02.02.04 18:36) [22]
:) Приятно однако...


 
Piter   (2004-02-03 14:24) [30]

Sir Alex © (03.02.04 12:36) [29]

да я понимаю, что ты меня за ламера полного принял, только вот пойми - ну мало я в базах смыслю. Что же теперь делать? А клиент какой получится - такой и получится. Мы еще посмотрим кто кого :) Будешь у меня еще исходники просить :) Ладно, это у меня юмор такой плоский, 2D типа

>Собственно выбор компонентов доступа к БД

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

>HTML Viewer (EmbeddedWB, HTMLite, HTMLViewer...)

а чего тут думать. TWebBrowser, конечно

>Сетевые компоненты (Indy, ICS, просто Sockets...)

Да у меня давно есть наработки от старых программ многопоточных сокетов на основе TTcpClient

>Многопоточная работа с БД и Internet

про сокеты я написал, а нафига нужна многопоточная работа с базой то?

>Удобный интерфейс

хех, вот это больной вопрос. Кому XP, а кому терминальную строку подавай

>Функциональность клиента (Полнотекстовый поиск, отправка сообщений, отслеживание перемещений сообщений, анкеты... и т.д. и т.п.)

Будем делать, я уже почти закончил планирование проекта, скоро надесь за кодинг сесть. Правда вот проблема, скоро учиться начинать надо. Это сильно замедлит проект...


 
jack128   (2004-02-03 14:41) [31]


> Не подскажешь какие выбрать для доступа к Firebird Embedded?
>
IBX (это то, что с Delphi идет), FIB+ (для ExUSSR - 500р. , по мнению многих - лудший набор компонент), IBO (говорят ОЧЕНЬ тяжелый набор компонент, для новичка в БД наверно не стоит и пытаться). Это только компоненты прямого доступа. Есть всякие BDE, ADO и тп , но нафиг это нужно? ;-)

> Да и вообще, где поподробнее прочитать про эту штуку? Основыне
> положения хотя бы...
Лудший русско язычный сайт по IBклонам www.ibase.ru. Там же найдешь другие ссылки.


> Многопоточная работа с БД и Internet
>
> про сокеты я написал, а нафига нужна многопоточная работа
> с базой то?
Что бы при скачивании форумов можно было работать с базой, и интерфейс при этом не тормозил.


 
Piter   (2004-02-03 17:07) [32]

>Что бы при скачивании форумов можно было работать с базой, и интерфейс при этом не тормозил

ну а при чем здесь многопоточность? Сколько будет занимать добавление новой записи? Имхо, 1/10 секунды, не болеее.

Да и вообще, логика клиента такова, что не имеет смысла работать с базой во время скачки. Работать с базой можно и так, без подключения к интернету даже. Это можно сделать и до скачивания.
А вот работа с новыми сообщениями... так пока их не скачаешь - как с ними работать?



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

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

Наверх





Память: 0.54 MB
Время: 0.01 c
14-94165
Макс Реалов
2004-02-03 18:23
2004.02.29
В чём разница?


1-93971
oss
2004-02-17 14:06
2004.02.29
запустить системные программы


7-94224
smu
2003-12-11 10:33
2004.02.29
Как правильно запустить программу, кот удалит которая ее удалит?


6-94084
kkostik
2003-12-17 11:01
2004.02.29
API Internet


3-93785
Piter
2004-02-01 21:05
2004.02.29
Упорядочивание в базе данных





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский