Как я могу создать систему тегов, используя php и mysql? - PullRequest
12 голосов
/ 02 марта 2011

Интересно, как я могу создать систему тегов в php и с базой данных mysql, я сначала хотел создать в таблице строку, в которой хранятся статьи, именованные теги и перечислить теги, разделенные запятыми, но яНе знаю, как создать запрос, который ищет совпадающие теги, я не хочу запрашивать каждую статью каждый раз, когда кто-то нажимает на тег.кто-нибудь может помочь?

Ответы [ 2 ]

33 голосов
/ 02 марта 2011

Вы описываете отношение «многие ко многим» между статьями и тегами.Чтобы разрешить эту связь, вы хотите использовать таблицу промежуточных соединений.

enter image description here

Теперь, чтобы найти все статьи, соответствующие выбранному тегу:

SELECT a.article_title
    FROM Tag t
        INNER JOIN Article_Tag_Xref atx
            ON t.tag_id = atx.tag_id
        INNER JOIN Article a
            ON atx.article_id = a.article_id
    WHERE t.tag_name = 'SelectedTagName'
2 голосов
/ 02 марта 2011

tbl_articles имеет articleID и т. Д.

tbl_tags имеет tagID и т. Д.

tbl_taggedarticles имеет taggedArticleID, articleID, tagID

SELECT articleID FROM tbl_taggedarticles WHERE tagID = "searchedID"
...