0

たとえば、Zip ファイルから、ファイルと共にファイル構造を保存する最良の方法は何ですか? 現在、各ファイルは MySQL データベースの行ですが、明らかにそこから構造を読み取ることはできません。バイナリ ファイルの保存を避けたい。すべてのファイルはプレーン テキストである必要があります。各 zip/ファイル構造は、それを送信したユーザーに非公開です。

4

4 に答える 4

3

構造が必要な場合は、ディレクトリテーブルとファイルテーブルを作成できます。次に、ルート内の各ディレクトリの親IDは0になります。次に、その下の各ディレクトリには、その親の親IDがあります。

次に、ファイルのディレクトリIDを指定して、ファイルの場所を示します。

于 2009-05-07T09:33:01.010 に答える
2

私の推奨事項は Ólafur Waage の推奨事項に似ていますが、レコードの「タイプ」を示す指標列を含む単一のテーブルを使用します。

id - Primary Key
parent_id - FK to self (id)
type - enum('D', 'F')
name - varchar
content - BLOB (if you wanted to ever store the file contents).

これは階層ツリー構造に従います。MySQL については、http: //mikehillyer.com/articles/managing-hierarchical-data-in-mysql/で追加情報を見つけることができます。

于 2009-05-12T20:34:54.537 に答える
0

最も簡単な方法 (おそらく最善ではない) は、目的のディレクトリ ツリーの「ルート」フォルダーを特定し、各ファイルでそのフォルダーからの相対パスを取得し、別の列 (「パス」など) としてデータベースに保存することです。テーブル。後でこれらの値を調べて、同じディレクトリ構造を構築できます。

于 2009-05-07T09:59:38.310 に答える
0

ベストは文脈です。しかし、額面どおりに考えると、ファイル構造を格納する最良の方法はファイル システムにあると言えます。エントリを他のレコードと一緒にリンクしたり、エントリに対してクエリを実行したりする必要がない限り、リレーショナル データベースは、任意の階層データに最適な選択肢ではありません。また、ハイブリッド ソリューションを使用することもできます。この場合、データベースにインデックスを保持し、ファイル パスとおそらくいくつかのメタ データを使用しますが、それでもファイル システムに格納します。

于 2009-05-07T10:02:35.463 に答える