Насколько важна база данных в управлении информацией? - PullRequest
2 голосов
/ 17 сентября 2008

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

Ответы [ 11 ]

1 голос
/ 17 сентября 2008

Вы не должны хранить изображения в базе данных, так как общее мнение здесь .

Файловая система намного лучше хранит изображения, чем ваша база данных.

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

1 голос
/ 17 сентября 2008

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

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

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

1 голос
/ 17 сентября 2008

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

Предназначено ли оно для установки на машины многих пользователей? Дополнительные издержки, связанные с тем, что вы можете запускать любой движок базы данных, выбранный вами в клиентском приложении, не оптимальны Поскольку объем данных невелик, я думаю, что XML здесь будет достаточно. Вы можете кодировать Base64 изображения и сохранять их как CDATA.

Будет ли приложение запускаться на сервере? Если у вас есть одновременные пользователи, то у баз данных есть концепции для обработки этих сценариев (транзакций), и это может быть полезно. И данные отсканированного изображения будут подходящими для BLOB.

1 голос
/ 17 сентября 2008

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

И только потому, что база данных не очень вам помогает с данными изображений, это не значит, что вы не можете хранить изображения в базе данных. Вы должны хранить их в столбце BLOB базы данных SQL.

1 голос
/ 17 сентября 2008

Любой вопрос "Должен ли я использовать определенный инструмент?" сводится к тому, чтобы спросить, что именно вы хотите сделать. Вы должны спросить себя: «Хочу ли я написать собственное хранилище для этих данных?»

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

0 голосов
/ 17 сентября 2008

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

В зависимости от изображений, вы можете хранить их в файловой системе или даже помещать их в BLOB-объекты и помещать в базу данных (поддерживается не во всех СУБД). Если файлы очень маленькие, я бы их промокнул. Если они большие, я бы оставил их в файловой системе и управлял ими самостоятельно.

Существует так много бесплатных или дешевых СУБД, что на самом деле нет никаких оснований не использовать их. Я парень по SQL Server, но если ваше приложение настолько простое, то бесплатная версия mysql должна сработать. На самом деле, там есть кое-что классное.

0 голосов
/ 17 сентября 2008

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

Для отдельных приложений SQLite отлично подходит. Он вписывается прямо в приложение как файл; нет необходимости в целой DRBMS Джаггернаут.

0 голосов
/ 17 сентября 2008

База данных предназначена для управления большими объемами данных и должна предоставлять вам быстрый доступ для чтения и записи этих данных, несмотря на размер. Проще говоря, они управляют масштабом для данных - масштабом, с которым вы не хотите иметь дело. Если у вас всего несколько пользователей (сотни?), Вы также можете легко управлять данными на диске (скажем, XML?) И хранить данные в памяти. Изображения явно не должны попадать в базу данных, поэтому вопрос в том, сколько данных или для скольких пользователей вы поддерживаете этот экземпляр базы данных?

0 голосов
/ 17 сентября 2008

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

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

SQL Server 2008 имеет новый тип данных, созданный для файлов в базе данных, но до этого BLOB был способом хранения файлов в базе данных. В небольших масштабах это тоже подойдет.

0 голосов
/ 17 сентября 2008

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

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