-1

私は、ユーザーがメディアをアップロードし、メディアをフォルダーに整理できるようにするアプリに取り組んでいます。ユーザーは、作成するフォルダーの「タイプ」(フォルダー、ビデオ、画像、ドキュメントなど)を判別できます。

アプリは、特定のフォルダーの内容をそのタイプに応じて異なる方法で表示します。ビデオフォルダにはプレイリスト付きのビデオプレーヤーが表示され、画像フォルダにはギャラリーなどが表示されます。

さまざまな種類のフォルダすべてに個別のテーブルを作成するか、タイプを割り当てるための列を持つFOLDERSという1つの大きなテーブルを作成する方がよいでしょうか。

実際のメディア自体は、MEDIAと呼ばれる独自のテーブルによって処理され、media_IDを使用してフォルダーにリンクされます。

つまり、OSはこれをどのように処理しますか?FOLDERSというマスター'テーブル'が1つあり、file_IDを使用してさまざまなファイルがフォルダーにリンクされていますか?

編集:明確にするために、「単一フォルダテーブル」アプローチがどのように分解されるかを次に示します。

FOLDERS
...................
id
user_ID
parent_ID
type
date

MEDIA
...................
id
type
file
date

FOLDERS_link_MEDIA
...................
id
folder_ID
media_ID

したがって、ユーザーがMEDIAをFOLDERに追加すると、2つを接続するFOLDERS_link_MEDIAテーブルに行が作成されます。

別の方法は、私が見ているように、いくつかの「フォルダー」テーブルFOLDERS_video、FOLDERS_audio、FOLDERS_images、FOLDERS_documentsなどを用意することです。次に、フォルダータイプごとに付随するリンクテーブルを作成します。FOLDERS_video_link_MEDIAテーブル、FOLDERS_images_link_MEDIAなど。

また、ファイルの実際のデータはMEDIAテーブルに保存されません。「ファイル」列には、ファイルがAWSS3で保存されている場所を指すURLが保存されます。

ありがとう。

編集2:SQL

そして、これが私がテーブルをトラバースする方法です。フォルダの内容をプルアップする場合、最初に、現在のフォルダに属する子フォルダがあるかどうかを判断します。

SELECT id FROM FOLDERS WHERE parent_ID='$this_folder_ID';

次に、それらのフォルダーをユーザーに表示します(一番上のフォルダー!)。次に、MEDIAのコンテンツを取得します。

SELECT media_ID FROM FOLDERS_link_MEDIA WHERE folder_ID='$this_folder_ID';
4

1 に答える 1

1

確かに1つの方法は-FAT-ファイルアロケーションテーブルです。(バリエーションが存在します)これは、ディスク上のファイルの場所を示します。

あなたが説明したことは、フォルダというよりも「タイプ」のように聞こえます。MEDIAエントリは列挙型である必要があります。そうすると、クエリ時にすべてがグループ化されます。

たとえば、VideoフォルダにないVideoを作成できるかどうかについては説明していません。

必要に応じて、次のような別のテーブル「フォルダ」を作成します。

FOLDER
------------
folder_id
type_id
name

次に、MEDIAの場合と同じtype_id値を使用します。

フォルダツリーを作成するには、次のようにします。

FOLDER_TREE
-------------
parent_folder_id
child_folder_id

次のようなフォルダにMEDIAを追加するには:

FOLDER_CONTENT
-----------------
folder_id
media_id
于 2013-03-12T20:24:35.223 に答える