Хранилище
Народ подскажите в каком формате данные хранить, требования такие:
1. Быстрый поиск
2. Небольшой объем
3. Простое добавление/извлечение
может так:
данные у меня вида "номер: сообщение"
есть у меня структура
char num[6];
char mes[256];
};
пихать строку в структуру, а структуру уже в файл (можно двоичный), а уже потом читать (по надобности) из файла массив этих структур, по ним поиск делать? или есть варианты поинтересней?
Сообщений этих у меня примерно 32000.
Добрый день!
Народ подскажите в каком формате данные хранить, требования такие:
1. Быстрый поиск
2. Небольшой объем
3. Простое добавление/извлечение
может так:
данные у меня вида "номер: сообщение"
есть у меня структура
char num[6];
char mes[256];
};
пихать строку в структуру, а структуру уже в файл (можно двоичный), а уже потом читать (по надобности) из файла массив этих структур, по ним поиск делать? или есть варианты поинтересней?
Сообщений этих у меня примерно 32000.
либо лыжи не едут либо я невъезжаю. почему не использовать БД. в книге лауры томпсон и дюка веллинга (программирования на PHP, кажется ) была такая фраза: Если количестов записей превышает 100 то целесообразнее использовать базы данных
либо лыжи не едут либо я невъезжаю. почему не использовать БД. в книге лауры томпсон и дюка веллинга (программирования на PHP, кажется ) была такая фраза: Если количестов записей превышает 100 то целесообразнее использовать базы данных
а не кто и не говорил, что нельзя БД, можно, тогда посоветуйте какую БД? вот Oracle скажем, тогда нужно где-то ведь БД хранить эту, одним файлом не отделаешься, может какую еще посоветуете? не хочу использовать BDE! программа простая!
а не кто и не говорил, что нельзя БД, можно, тогда посоветуйте какую БД? вот Oracle скажем, тогда нужно где-то ведь БД хранить эту, одним файлом не отделаешься, может какую еще посоветуете? не хочу использовать BDE! программа простая!
на изучение oracle может уйти целая жизнь :) а bde - простой способ работы с данными. информацию по нему можно найти в любой книге по билдеру. но для начала очень НАСТОЯТЕЛЬНО рекомендую почитать общую литературу по базам данных, чтобы представлять себе что это такое. как минимум знать отличия обычной и сетевой (с архитектурой клиент-сервер) бд.
ps: oracle это СУБД.
на изучение oracle может уйти целая жизнь :) а bde - простой способ работы с данными. информацию по нему можно найти в любой книге по билдеру. но для начала очень НАСТОЯТЕЛЬНО рекомендую почитать общую литературу по базам данных, чтобы представлять себе что это такое. как минимум знать отличия обычной и сетевой (с архитектурой клиент-сервер) бд.
ps: oracle это СУБД.
с Oracle я знаком, вот сейчас под него пишу (не без помощи добрых людей), про БД тоже читал книжечки, а BDE скажу нет!
Я не спрашивал у Вас про то как это все работает, я просил рекомендаций по поводу хранилищ! А как это реализовать, сам разберусь. Что лучше использовать: там Firebird, или файлы (текстовые, двоичные) или еще что, главное, чтобы не пришлось на стороне клиента что-то дополнительное ставить, а было бы скажем пару или один файл! вот что я хочу узнать!
а не кто и не говорил, что нельзя БД, можно, тогда посоветуйте какую БД? вот Oracle скажем, тогда нужно где-то ведь БД хранить эту, одним файлом не отделаешься, может какую еще посоветуете? не хочу использовать BDE! программа простая!
Начнем по порядку.
+Бинарные файлы однозначно быстрее. Меньше размером (отсутствие метаданных и проч.). Чтение-запись данных, при условии соблюдения структуры описанной вами, простейшее. Отсутствует необходимость установки дополнительных драйверов на стороне клиента.
-Изменение структуры данных, влечет за собой неприятные последствия по реструктуризации всего объема хранилища. Поддержание логической, да и физической, целостности данных - на совести программы-клиента.
Разработка программ сторонними производителями без описания и документации - вешалка.
Соответственно для баз наоборот. При этом Oracle стоит использовать в случае >=3500000 записей, ну или около того. Если решитесь на базу, можете попробовать Firebird(Interbase). Они для таких масштабов. Но учтите, что кроме программирования вам придется выполнить и проектирование самой базы. Т.е. определить сущности, разработать систему таблиц, определить связи между ними, провести нормализацию хотя бы до 3НФ и т.д.
BDE не самый удачный выбор. Воспользуйтесь компонентами ADO, dbExpress, для Interbase - IBTable и иже с ними, для Firebird - FIBPlus.
Ну вот кратенько и все. Кто-то добавит свое, выбор модели вашего хранилища и/или СУБД за вами. Удачи.
главное, чтобы не пришлось на стороне клиента что-то дополнительное ставить
Тогда ADO вместо BDE.
+ и - работы с файлами это я точно знаю, но за расписанный ответ все равно спасибо.
Когда следует использовать Oracle тоже.
А вот с Firebird не работал, хотя вот покопался в поисковиках и тоже пришел к выводу, что наверное придется использовать Firebird.
Насчет BDE или ADO однозначно ADO.
А вот по Firebird в данном ракурсе, у него есть локальные базы? Есть ли возможность напрямую работать с базой на локальном компьютере?
Да.
Другие ответы тут
http://www.ibase.ru/firebird.htm
спасибо!
спасибо!
есть также один из простых варантов - использовать возможности MS Access, который стоти почти у всех
есть также один из простых варантов - использовать возможности MS Access, который стоти почти у всех
Не есть это правильно, да и под Access нужно писать на VBA.
все прелести SQL, хранение бд в файле и многое другое. У нас несколько проектов на нем досихпор работает без проблем.
гг не посмотрел на дату