Система управления документами - проектирование базы данных - PullRequest
3 голосов
/ 12 января 2011

Я пишу свою собственную Систему управления документами (DMS) на Java (доступные не удовлетворяют моим потребностям).

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

Для хранения метаданных для всех документов у меня есть две идеи (файлы документов будут храниться в файловой системе):

  1. Хранить все метаданные всех документов в одном XML-файле
  2. Создайте файл XML для каждого документа и сохраните его либо в файловой системе, либо в СУБД (например, ядро ​​базы данных H2 для Java), база данных значения ключа не решит эту проблему, поскольку ключи для одного документа не уникальны.

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

Какое решение вы бы порекомендовали? Или есть лучшие решения?

Stefan

Ответы [ 5 ]

1 голос
/ 12 января 2011

Кстати: даже если это не относится к вашему вопросу: взгляните на реализацию JCR (Java Content Repository), например JackRabbit Вы можете использовать его для хранения ваших документов и, возможно, ваших метаданных.

1 голос
/ 12 января 2011

Рассматривали ли вы использование MongoDB и GridFS?http://www.mongodb.org/display/DOCS/GridFS+Specification

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

1 голос
/ 12 января 2011

Я не знаю, как работает ваш анализ, но если вам нужен полный график в памяти для анализа, используйте variante 1 (Храните все метаданные всех документов в одном файле XML), потому что вы не получите никакой выгоды (но только дополнительная работа) из variante 2 в этом сценарии.

добавлены

Если эта дополнительная работа для варианта 2 не слишком велика, я рекомендую вариант 2, потому что он может быть более поддающимся оценке.

  • Вы можете обновить или добавить метаданные документа, написав только маленький XML-файл вместо огромного
  • это зависит от того, какой xml-анализатор вы используете, но в некоторых случаях он быстрее разбирает некоторые меньшие xml-файлы, чем один огромный (но это сильно зависит от объема данных).
0 голосов
/ 12 января 2011

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

0 голосов
/ 12 января 2011

Я бы посмотрел на решение для работы с документами NO SQL, например, Couch DB, чтобы посмотреть, может ли оно вам помочь.

Мне не нравится решение файловой системы; Там нет никакой абстракции, чтобы помочь вам там.

...