1

約 700 枚の写真のデータベースがありますが、タグで検索できるように検索バーを作成したいと考えています。

どうすればこれを始められるでしょうか。

mysql データベースにタグを追加すると思います...どうすればよいですか? また、複数のタグを追加するにはどうすればよいですか?

4

2 に答える 2

3

tags列が と である追加の table をid用意します。このテーブルにはname、可能なすべてのタグが保持されます。image_tagsimage_idtag_id

|   tags   |
+---+------+
| 1 | cats |
| 2 | dogs |
| 3 | foo  |

|         image_tags        |
+---------------------------+
| 1 (cat image)         | 1 |
| 1                     | 3 |
| 2 (dog image)         | 2 |
| 3 (cat and dog image) | 1 |
| 3                     | 2 |

このように、同じ画像に複数のタグを付けることができ、同じタグを複数のテーブルに表示できます。

これは、多対多の関係と呼ばれます。

于 2012-08-21T12:37:23.643 に答える
0

これは古典的な「多対多」の関係です。

タグベースのシステムを作成するには、DB に 2 つの新しい tales を作成する必要があります ("tags" および "tags_images" テーブルを想定)。

「tags」テーブルには、「id」と「tag」の 2 つのフィールドがあります。

「tags_images」テーブルには、「id」、「tag_id」、「image_id」の 3 つのフィールドがあります。

したがって、iamge にタグを追加するには、タグ (「tag_id」による) と画像 (bt "image_id") を接続する「tags_images」テーブルに新しいレコードを追加するだけです。

また、「tags」テーブルに新しいタグを追加する必要があります。そのようなものはありません。

タグ「犬」を持つすべての画像を取得するには、次のような単純な sql JOIN クエリを作成する必要があります。

SELECT `tags`.*, `images`.*
FROM `tags` t
INNER JOIN `tags_images` ti ON t.`id` = ti.`tag_id`
INNER JOIN `images` i ON i.`id` = ti.`image_id`
于 2012-08-21T12:42:31.290 に答える