私は現在、ユーザーがカテゴリ別に表示するコミックを選択できるコミックWebサイトを持っています:チャート、オフィス、ライフ、その他など。
StackOverflowにあるようなタグ付けシステムを実装したいと思います。これは、カテゴリではなく、各コミックのコンテンツの詳細を説明します。例:チャートカテゴリでは、いくつかのビジネス関連があります...
私の簡単な解決策は、分類を処理した方法で処理することです-
- tagid、tagname、tagdescriptionを使用して「タグ」テーブルを作成します
- コミックテーブルにtagid_ForeignKeyフィールドを追加し、各投稿にタグを追加します。
- ユーザーがタグをクリックすると、そのタグが付いた投稿のみが表示されます...または、カテゴリが指定されている場合は、その特定のタグが付いた特定のカテゴリが表示されます。
ただし、このアプローチでは、カテゴリごとに1つのタグに制限されているようです。ビジネスと人間関係に関連する漫画がある場合はどうなりますか...したがって、これらのタグの両方が必要になります。
コミックごとに複数のタグを付けるにはどうすればよいですか?
編集:
さらにいくつかの質問:
1)新しいリレーショナルテーブルに何を挿入しますか...何か?
2)また、のwhile ($row = $tag->fetch_assoc()) {
場合、結合がある場合、どのようにテーブルをループできますか?それは連想配列ではありませんか?
3)問題は、タグの選択肢をそのままエコーアウトしていることです。ユーザーがリンクをクリックしたら、別のリンクをクリックして2番目のタグを割り当てることができるようにするにはどうすればよいでしょうか。
function getTags() {
include 'dbconnect.php';
global $site;
$tag = $mysqli->query("SELECT tagid, tagname FROM tags");
//$tag = $mysqli->query("SELECT * FROM comics c INNER JOIN comictags ct ON (c.comicID = ct.comicID) WHERE ct.tag_id IN (1, 2, 3) GROUP BY c.comic_id");
mysqli_close($mysqli);
while ($row = $tag->fetch_assoc()) {
echo "<a href='?action=homepage&site=" . $site . "&tag=" . $row['tagid'] . "&tagname=" . $row['tagname'] . "'/>" . $row['tagname'] . "</a><br />";
}
}