私は曲データベース システムを使用して、多対多の関係データベースで mysql を使用して php を学習しています。以下は、3 つのテーブルがどのように編成されているかを示しています。
Songs Link Tags
======= ===== =======
Sid Sid Tid
Songname Tid Tagname
タグのシノニムがあるとどうなるか考えていました。私は、入力されたタグと組み合わされた各曲の一致率を計算しています。1曲に20個のタグを入力したくないので、すべての可能性をカバーしますが、4つのタグが入力されたため、一致率が台無しになり、4/20一致別名20%になりましたが、4/8でなければならなかった可能性があります(50%)。
入力されたタグが最初にこのテーブルでチェックされ、次にこれ/これらの「ヘッドタグ」がリンクテーブルと一致するように、タグが「グループ化」されていることを確認して、同義語のテーブルを作成するスマートな方法はありますか?曲名と入力されたタグの一致率 / 「頭のタグ」の合計数 × 100% になります。
それに加えて、新しい曲が入力されたときに、新しいタグが所属するグループに入力され、既存のタグがスキップされるクエリを作成するにはどうすればよいでしょうか。このヘッドタグを新曲にも繋げながら?
このアイデアが現実的かどうかはわかりませんが、同義語を考慮しながら正確な一致を得るために、他のシステムがどのようにこれを行うのだろうか.