Нужна ли мне база данных для моего программного обеспечения? - PullRequest
1 голос
/ 17 декабря 2011

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

Мой вопрос: нужна ли мне база данных на основе SQL и т. Д. Или подойдет простая обработка файлов через C / C ++?

Ответы [ 8 ]

5 голосов
/ 17 декабря 2011

Все зависит от того, что вы собираетесь делать с данными.

Если вы просто ищете способ убрать часть текста и цифр и можетечтобы вернуть его позже, достаточно простого обработчика файлов.

Но если вам понадобятся отношения между наборами данных, если вы хотите найти данные достаточно эффективным способом или обработать ихв более динамичной манере;Лучше всего подойдет база данных.

Хотя вам не нужно настраивать демона под управлением MySQL, размещать его на выделенном сервере, оптимизировать дерьмо из дискового ввода-вывода и т. д. и т. д., что, вероятно, будетперебить на тысячу.

Вы, безусловно, добьетесь больших успехов, просто используя SQLite, который является драйвером базы данных на основе файлов, без сокетных соединений, если только один пользователь должен одновременно обращаться к базе данных, это хорошее решение.

Ссылки на документацию

1 голос
/ 17 декабря 2011

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

0 голосов
/ 18 декабря 2011

Может быть, простой XML-файл является вариантом для вашего сценария? Конечно, если вы работаете в C ++, это будет проще (быстрее) реализовать, чем подключаться к базе данных (sql кажется излишним для дневника imho).

0 голосов
/ 17 декабря 2011

Один момент, который, кажется, упущен - не зацикливайтесь на использовании реляционной базы данных (большинство предложений, разумно разумно, относятся к встроенным базам данных SQL).

Может случиться так, что система стиля NoSQL с большей гибкостью с точки зрения того, как хранятся ваши данные, является более подходящей - ее трудно судить без более подробной спецификации, но если это дневник с переменными требованиями в зависимости от вход, а не жесткая структура, система, которая гибко хранит пары ключ / значение, могла бы быть более подходящей.

Я не могу предложить встраиваемые системы NoSQL (я смотрю на SterlingDB , но я разработчик .NET и смотрю на вещи для Windows Phone 7)

0 голосов
/ 17 декабря 2011

Если концептуальная модель вашего приложения будет иметь много разных сущностей и разные отношения между ними, то база данных вам очень поможет, особенно если вам нужно сделать различные запросы к вашим данным.

Я думаю, что SQLite идеально подходит для приложения, как вы описали.

0 голосов
/ 17 декабря 2011

Я бы использовал оба: файлы для lots of text and numbers и базу данных SQLite для сохранения некоторых дополнительных данных, которые невозможно восстановить из простых файлов (по крайней мере, без использования расширенных атрибутов файла), таких как оценка, РЕАЛЬНАЯ (не считанная из ФС) датасоздания, тегов и т. д.

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

0 голосов
/ 17 декабря 2011

Вам также нужно определить «много текста и цифр».Если он становится слишком большим, то хранилище файлов может оказаться недостаточно эффективным.Не похоже, что так будет в случае с дневником персональных данных, но это общее соображение

0 голосов
/ 17 декабря 2011

Всегда ли один и только один пользователь данных?Если это так, что-то простое, например, плоский файл или sqlite, будет работать просто отлично.Если вам нужен параллелизм в доступе, используйте базу данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...