11

関連付けられたメタデータを持つファイルのコレクションがある場合、このメタデータを保存するための推奨される方法は何ですか?

一部のファイル形式はメタデータの内部保存をサポートしていますが (EXIF、ID3 など)、すべてのファイル形式がこれをサポートしているわけではありません。より一般的なオプションは何ですか?

メタデータの一部はほぼ確実に固有のもの (タイトル/説明など) ですが、一部はさまざまな程度で繰り返し使用されます (カテゴリ/タグなど)。
異なるタイプの属性が必要な場合は、メタデータをグループ化すると便利な場合もあります。

理想的には、ソリューションは特定の言語の実装ではなく、概念をカバーする必要があります。

4

5 に答える 5

5

データベースにメタデータを保存することにはいくつかの利点がありますが、データベースの主な問題は、メタデータがデータに直接接続されていないことです。ディレクトリ内の特別なファイルなどのように、メタデータがデータにとどまると、より堅牢になります。

一部のファイルシステムは、 NTFS 代替ストリームのようなメタデータに使用できる特別な機能を提供します。残念ながら、これをサポートしていないストレージ システムにデータをコピーすると、これらのストリームが簡単に失われる可能性があるため、これは特別な場合にのみメタデータ ストレージに使用できます。Linux ファイルシステムにも同様のストレージ メカニズムがあると思います。

とにかく、最も一般的な解決策は次のとおりです。

  • メタデータを保持する個別の隠しファイル (ディレクトリごと)
  • 一部のアプリケーションは、メタデータ (subversion、cvs など) を含む特別な隠しディレクトリを使用します。
  • またはすべてのアプリケーション固有のメタデータ用の (さまざまな種類の)データベース- このデータベースは、ほとんどの場合、キャッシュの目的にも使用できます。

IMOには汎用ソリューションはありません。高速アクセスとキャッシングのためにデータベースを使用して、メタデータを隠しファイル (堅牢性) に保存することを選択します。

于 2009-02-26T23:35:42.210 に答える
2

1 つのオプションは、次のような構造のリレーショナル データベースです。

FILE
f_id
f_location
f_title
f_description

ATTRIBUTE
a_id
a_label

VALUE
v_id
v_label

METADATA
md_file
md_attribute
md_value

この実装にはいくつかの固有の情報 (タイトル/説明) がありますが、主に反復的なデータ グループを対象としています。

要件によっては、一般的でない他のテーブルの方が役立つ場合があります。


これには、リレーショナル データベースが非常に一般的であり、明らかにリレーションシップの処理と大量のデータの格納に優れているという利点があります。

ただし、用途によっては、データベース サーバーが望ましくないオーバーヘッドをもたらすことがあります。また、データベース サーバーはファイルとは異なります。ファイルは一緒に配置されず、異なる対話方法が必要です。

データベースは(簡単に)バージョン管理下に置かれません。これは、あなたの視点と特定のニーズに応じて、良いことも悪いこともあります。

于 2009-02-07T18:28:23.410 に答える
2

「解決策」は、メタデータで何をしようとしているかに大きく依存すると思います。

たとえば、私たちが保存するほとんどすべてのメタデータ (科学データの複数のデータセット) はすべて切り刻まれてデータベースに保存されます。これにより、ファイル固有の構造 (タイトル、開始/停止時間、最小/最大値など) を保持しながら、ファイル間の共通メタデータ (カテゴリとタグなど) を保持するデータセットを作成できます。隠しファイルがある場合は、多くの検索を行い、Web サービスを介して外部の消費者にインターフェイスを開きます。

検索対象外のメタデータを保存している場合、隠しファイルまたは「実際の」ファイルごとに専用の .xml ファイルを使用することは、悪い方法ではありません。基本的に何からでも読み取り可能で、さまざまな形式に簡単に変換でき、ストレージ メカニズムを変更しても失われることはありません。

メタデータは、邪魔になるのではなく、役に立つはずです。私は、メタデータの保存が実際のデータの保存よりも負担になり、負担になっているシステムを見てきました (そしてその一部でした)。それを使って何をしようとしているのかを心に留めておいてください。

于 2010-05-20T16:39:27.350 に答える
1

プレーンテキストには、他の何よりも明らかな利点がいくつかあります。何かのようなもの

FileName = 'ferrari.gif'
Title = 'My brand new car'
Tags = 'cars', 'cool'
Related = 'michaelknight.mp3'

Picasa の Picasa.ini ファイルは、この種のメタデータの良い例です。また、独自のフォーマットを発明する代わりに、XML を検討する価値があるかもしれません。この形式を処理するために、すぐに利用できる DOM プロセッサがたくさんあります。

繰り返しになりますが、ファイルの量とそれらの間の関係が膨大な場合は、データベースの方が優れている可能性があります。

于 2009-02-08T16:39:32.087 に答える