1

PHP と MySQL を使用して関連サイトを投稿する Web サイトを作成しています。このサイトでは、コンマ区切りのタグを使用したタグ付けシステムを使用しています。たとえば、タグはphp, mysql, code, programming のようになります。

このカンマ区切りのタグ付けシステムを使用する理由は、ユーザーが自分の投稿に好きな種類のタグを挿入できるようにしたいからです

このサイトとインターネットから検索しましたが、答えは私の質問とはあまり関係がありません。多くのタグ付けシステムは、item、tag_map、tag などの 3 つのテーブルを使用しますが、コンマ区切りのタグ付けシステムでは機能しないと思います。

ここまでで、名前フィールドとタグ フィールドを含むテーブルを作成しました。私が見つけた最良の解決策は、Tf-idf、用語頻度-逆ドキュメント頻度を使用して、そのコンテンツに対して投稿を重み付けすることです.

これに対する他の良い解決策はありますか?ない場合は、誰かがこの tf-idf の例を php コードを使用して説明できれば、本当に感謝しています。

4

1 に答える 1

1

対処されたコメントのように、これは行うべきではない方法ではありません。これを 3 つのテーブルに分割する必要があります。

投稿自体を格納するテーブル。

Table posts
-----------
id
text

すべてのタグのテーブル。

Table tags
-----------
id
name

最後に、2 つを接続するテーブル。

Table postTags
-----------
id
postId
tagId

これらからデータを選択する場合、次のようなクエリを使用できます。

SELECT * FROM posts p
INNER JOIN postTags pt ON pt.postId = p.id
INNER JOIN tags t ON pt.tagId = t.id
于 2012-10-11T21:03:56.497 に答える