1

ユーザーがアップロードしたメディア(画像/音声/動画/ PDF)ごとにタグを保存したい。そして将来的には、このタグを使ってメディアを検索したいと思います。私は初心者の開発者であり、これを行うために1つの方法を使用しました。

2つのテーブルを作りました

  1. TAG(Tagid、Tagname)
  2. メディアタグ(Mediaid、Tagid)

    • メディアはユーザーがアップロードしたデータです
    • タグは、メディアを再度検索するために使用される単純な単語です

たとえば、画像をアップロードすると、mediaid = M1になり、Tag1、Tag2として2つのタグを付けます。今

Table 1} will contain data => Row1 = T1-Tag1 ; Row2 = T2-Tag2 as schema[Tagid,Tag name]
Table 2} will contain data => Row1 = M1-T1 ; Row2 = M1-T2 as schema[Mediaid,Tagid] 

これは、ユーザーによるアップロードごとに繰り返されます。たとえば、特定のタグを検索する必要がある場合:「Tag1」を検索します。「T1」であるTag1のタグIDを検索します。タグIDが「T1」であるMediatagsテーブル内の各meadiidを検索します。

次に、T1=Tag1のタグを持つメディアIDを取得します

私はこれにMySQLを使用しています。今、私は別のメカニズムを念頭に置いています、

そのタグを持つすべてのメディアIDを含むタグごとにXMLファイルを作成するとします。この例では、2つのXMLファイルTAG1.XML、Tag2.XMLがあり、両方にデータM1が含まれています。検索中に2つのステップが作成されます。そのタグのXMLファイルを見つけます。そして、そのタグを使用したすべてのメディアIDを取得します。ここで、XMLファイルTAG1.XMLを見つけて読みます。タグM1を使用したすべてのメディアIDが表示されます。検索中に完全に役立つと思います。ただし、生成されるXMLファイルが多すぎます。アルファベット順の辞書で並べ替えます。

知りたいのですが、1.このXMLアプローチをMySQLよりも使用するのはどれほど効率的ですか?2. MySql 2テーブルでデータを検索し、次に固定ディレクトリに保存されているXMLファイルを検索します。どちらが良いですか?

最初のアプローチを使用した場合、MySqlテーブルには非常に多くの行があり、2番目のアプローチでは非常に多くのXMLファイルがあります(XMLファイルは重くはありませんが、非常に多くのXMLファイルがあります!)

だから私はもっと好ましいアプローチが何であるか混乱しています!提案してください!

4

1 に答える 1

1

どちらのアプローチも機能します。あなたの質問は効率の問題であり、能力ではありません(私があなたを理解している場合)。効率に関する質問に答えるには、アプリケーションの要件について多くのことを知る必要があります。

ここにあなた自身に尋ねるべきいくつかの質問があります:

  1. データ項目(アーティストの経歴)はかなり静的ですか、それともシステムには常に多くのデータ項目が来たり、変化したり、進んだりしますか?
  2. これらのアイテムの多くの動的ルックアップを計画していますか?
  3. ルックアップはタグ、コンテンツ、またはその両方で行われますか?

システムの変更とルックアップの量が少ない場合、XMLを使用することには利点があります。保存するデータの定義方法がより柔軟になります。XPathクエリ言語は習得するのが難しいですが、上手になるとうまく機能します。ただし、MarkLogicのようなXML対応サーバーのインストールと使用方法の学習に投資しない限り、高速ではありません。遅くなります。

それ以外の場合は、MySQLを使用してください。FULLTEXTクエリ機能など、この種の作業にはいくつかの重要な利点があります。

あなたがしているのは、「セマンティックWeb」と呼ばれる作業のサブセットです。あなたはそれについて、そしてメタデータを表現するための「ダブリンコア」と呼ばれるスキームについていくらか読むかもしれません。これを理解しようと多くの頭脳が注がれています。結果を説明しようとする頭脳がわずかに少なくなっているため、セマンティックWebについて学ぶのは難しいことですが、それでも価値はあります。

WordPress、Drupal、Joomlaなどのコンテンツ管理システムの使用を検討してください。このシステムの最初のバージョンを構築します。MediaWikiやTwikiのようなウィキプラットフォームの使用を検討することもできます。

これらのシステムは、さまざまなタグ付け(分類)スキームを非常にうまくサポートしていることがわかります。そして検索に関しては:それはうまくいきます。「堅実な」Webアプリケーションは、echo "Hello, world of music!";結果を得る前に、多くの反復的で退屈な作業を必要とします。

パレードフロートを構築する場合は、ボルトのバケツ、のこぎり、およびいくつかの材木ではなく、トラックから始めます。Webサイトについても同じです。

于 2013-01-26T16:07:36.227 に答える