ユーザーがアップロードしたメディア(画像/音声/動画/ PDF)ごとにタグを保存したい。そして将来的には、このタグを使ってメディアを検索したいと思います。私は初心者の開発者であり、これを行うために1つの方法を使用しました。
2つのテーブルを作りました
- TAG(Tagid、Tagname)
メディアタグ(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ファイルがあります!)
だから私はもっと好ましいアプローチが何であるか混乱しています!提案してください!