使用php添加和显示添加到帖子中的标签


Adding and showing tags added to a post using php

我在一个社交新闻网站上工作,用户可以在该网站上发布任何内容,网站为用户提供标签选项,标签可以是"政治"或"娱乐",任何取决于用户的内容,他们可以选择多个标签。。。所以我的问题是如何将帖子的标签存储在数据库中,特定帖子有相应的标签,以及当选择特定标签时如何从数据库中获取所有帖子。。。与此stackoverflow网站相同

帮帮我。。。。

这是一个巨大的问题,但让我们尝试一下:-)

数据库:这是一个N:N关系,所以你需要3个表1) 有id的帖子2) 具有id的标签3) post_id和tags_id的post_tag这将使一个post 可以有几个标签

如何存储:创建一个post_id,然后通过将这个新创建的post_id和分配的post_ids插入post_tags表来添加标签

如何根据标签进行检索:从posts_tags中选择*,其中tags_id=x;

您已经有了一个用于发布的表格,例如

CREATE TABLE IF NOT EXISTS post (
  post_id int(11) NOT NULL,
  -- more columns as needed
  PRIMARY KEY (post_id)
);

你应该有一个有效标签的表格,例如

CREATE TABLE IF NOT EXISTS tag (
  tag_id varchar(32) NOT NULL,
  PRIMARY KEY (tag_id)
);

添加您的有效标签

INSERT INTO tag (tag_id) VALUES ('Entertainment'), ('Politics');

最后,你需要你的帖子和标签之间的多对多关系

CREATE TABLE IF NOT EXISTS tag_to_post (
  tag_to_post_id int(11) NOT NULL AUTO_INCREMENT,
  tag_fk varchar(32) NOT NULL,
  post_fk int(11) NOT NULL,
  PRIMARY KEY (tag_to_post_id),
  FOREIGN KEY (tag_fk) REFERENCES tag(tag_id),
  FOREIGN KEY (post_fk) REFERENCES post(post_id)
);