前回の続き、というか補足です。
前回は参照部分がメインですね。今回は全体的な手順について。
まず、動画とタグを関連付ける前に、どんなタグを設定するかデータを用意します。
前回の、
A「動画一覧テーブル」
B「タグ名一覧テーブル」
C「タグと動画を紐付けるテーブル」
で言うと、Bの部分ですね。
こんな感じで、こんなタグで検索出来たらいいな〜と言うデータを入れたテーブルを用意します。これは、ユーザーが自由に追加出来るようにすることも可能ですが、エロぺん動画では現状管理人しか追加出来ない状態です。
内部的な仕様ではtidが9999まで管理人、それ以降がユーザータグと分けてるけどね。使ってないのです。次は、動画を追加する部分。テーブル的にはAの部分です。
動画は何処かからか見つけてきたとします。
タイトル「激かわ巨乳JKがこんにちは」
動画URL「http://xvideos.com/videoxxxxx」
(適当です)
これを登録しましょう。
mid | mtitle | murl |
---|
1 | 激かわ巨乳JKがこんにちは | http://xvideos.com/videoxxxxx |
| | |
| | |
という感じで登録。テーブルAはこんな感じ。
次が肝の部分、タグマップを登録します。エロぺん動画では正規表現に使うデータも別で用意してますが、今回は簡易的に直接プログラムで登録タグを判断します。
タイトルの「激かわ巨乳JKがこんにちは」からどんなタグを設定するか判定します。
以下は一例です。
$title = "激かわ巨乳JKがこんにちは";
$tagList = [];
$tagList[] = array('美少女', '美少女|可愛い|激かわ');
$tagList[] = array('女子校生', '女子(校|高)生|JK|援助交際');
$tagList[] = array('巨乳', '巨乳|爆乳|ボイン');
$result = [];
foreach ($tagList as $tag) {
$pattern = '/' . $tag[1] . '/i';
if (preg_match($pattern, $title)) {
$result[] = $tag[0];
}
}
これで、$resultには登録タグが入ります。arrayの1つ目はtidでも良いですね。そして、このデータを元にタグマップを設定すると、タグマップ(テーブルC)は以下のようになります。
この3つのテーブルが用意されていることを前提に、前回の検索SQLがありました。
SELECT B.tname FROM C tm, A l, B t WHERE t.tid = tm.tid AND l.mid = tm.mid AND l.mid=XXX
これで、XXXの部分に動画一覧のmidを入れれば、その動画に設定されているタグ一覧が取得出来ます。
タグがあることで、ユーザーは動画を探すのがとても楽になります。タグなら「メガネ」「めがね」「眼鏡」も一度に検索出来るのです。
ちなみに、自動化していることで起こる問題としては、「可愛い奥様」というタイトルだと、「美少女」「熟女」の両タグで出てきてしまう事ですが、エロぺん動画ではその辺りは許容範囲としてます。
というわけで、動画をデータベースに登録する際には、以上のような手順が踏まれます。実際には、タグ以外のデータとして再生時間の取得やサムネイルの取得も処理します。
エロぺん動画のやり方でほぼ自己流ですが、何かの参考になれば幸いです!
あと毎度のことですが間違ってたら誰か指摘して頂けると助かります!
- 関連記事
-