4

Zend Framework と Doctrine で構築されたカスタムメイドの CMS にメディア ライブラリを追加したいと考えています。目標は、Worpress のメディア ライブラリのようなものを構築することです。メディアをアップロードして、たとえば記事に添付できます。

これから始める方法について何か提案はありますか?データベースはどのように設計する必要がありますか? これをビルドするために (再) 使用できるコードはありますか? このテーマについて読むべき文献はありますか? ありがとう!!

4

2 に答える 2

2

WPsライブラリがどのように構築されているかはわかりませんが、オープンソースです。ご覧ください。

テーブル構造に関しては、多対多のリンクが必要であると仮定すると、次のような相互参照テーブルが必要になります。

record_id (int)
media_id (int)
title (text)
caption (text)
rank (int)

その場合、メディアテーブルは次のようになります。

id (int)
title (text)
caption (text)
filename (text)
type (image|multimedia|document)

おそらく、folder_idフィールドをメディアテーブルに追加するか、代わりにタグ付けが必要です。この場合、media_idとtagをフィールドとして持つ3番目のテーブルがあります(または、メディアテーブルにコンマ区切りの値としてタグがあります)。

これにより、1つのメディアを複数のアイテムにリンクし、1つのアイテムを複数のメディアにリンクできます。メディアアイテムのタイトルとキャプションを設定し、特定のリンクに対してオーバーライドできます。たとえば、家のキャプションが付いた家の写真がありますが、1つのリンクで、キャプションが(相互参照テーブルで)上書きされ、この家が特定のアーキテクチャの例であることが示されます。SQLの合体関数は、正しいタイトルとキャプションを取得するのに役立ちます。

メディアにリンクするコンテンツが複数のテーブルからのものである場合、たとえば「staff」というテーブルと「products」というテーブルがあり、両方がメディアにリンクできる場合、相互参照テーブルにもtable_nameフィールドが必要です。タイプフィールドは、レコードに添付されたマルチメディアのみ、または画像のみを簡単に取得できるようにするためのものです。添付されているドキュメントの数、画像の数などを数えたい場合があります。これは、各クエリのファイル名に基づいているため、クエリが遅くなります。

これが完全に対応していないことの1つは、メディアをオフサイトでホストすることです。これらの画像を保存するためにAmazonS3を使用する場合、「ファイル名」フィールドは実際には画像へのURLになります。メディアライブラリを設計する際に考慮する必要があるものとして、これを撮影しています。

コピーして貼り付けることができる文献やコードは考えられませんが、それは難しいことではありませんが、これには時間がかかる可能性があることを理解しています。

幸運を祈ります。

于 2010-05-07T17:45:32.053 に答える
0

ファイル アップローダとファイル ブラウザ
を作成するだけです

于 2010-04-16T15:15:05.540 に答える