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

帮帮我....

===============>>#1 票数:2 已采纳

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

数据库:这是一个N:N关系,因此您需要3个表1)具有ID的帖子2)具有ID的标签3)具有post_id和tags_id的posts_tags这将使一个帖子可以具有多个标签

如何存储:创建为您提供post_id的帖子,然后通过将带有分配的post_ids的新创建的post_id插入posts_tags表中来添加标签

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

===============>>#2 票数:1

您已经有一张表格供您发布,例如

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)
);

  ask by user3553289 translate from so

未解决问题?本站智能推荐:

1回复

如何使用PHP和MySQL的逗号分隔标签系统获取相关帖子? [关闭]

我正在使用PHP和MySQL创建一个网站来发布相关网站。 我正在为此站点使用带有逗号分隔标签的标签系统,例如我的标签将如下所示: php,mysql,代码,programming 。 我之所以使用这种逗号分隔的标记系统,是因为我希望用户能够为其帖子插入任何类型的标记 。 我已经从该
4回复

使用PHP / MySQL中的标签进行搜索

我正在努力寻找解决方案。 我有以这种形式插入数据库的标签 mytags = firsttag, secondtag, thirdtag 我需要在单页上显示基于这些标签的相关项目 但是,这并不起作用,因为它仅搜索具有完全相同的标语(第一标签,第二标签,第三标签)的帖子,而不搜
1回复

将标签附加到MySQL数据库中的一行

我通常是一名前端开发人员(HTML / CSS等),但是目前我正忙于一些后端开发以应对挑战。 请记住,我只做了几周的后端操作,所以我的术语/逻辑还处于起步阶段...放轻松;) 首先,我正在PHP和MySQL中构建一个东西,以便可以对乙烯基集合进行分类。 这是一种非常简单的形式,它可以使
1回复

如何在php中显示来自mysql数据库的html

我一直在努力弄清楚如何在mysql表中显示html标签。 我已经尝试使用addslashes,mysql_real_escape_string以及stripslashes来正确查看标签。 每次我通过浏览器查看数据时,它都会显示html的文本。 例: 我在mysql数据库表中有这个:
2回复

有没有更好的方法使用逗号在db中保存标签?

目前我使用逗号“,”将标签保存为文本,当我需要处理和使用某个地方时,我需要爆炸字符串,例如“美国,加拿大,犯罪,多伦多,音乐,秋天”。 我在想是否有更好的方法(更少的资源和耗时的友好)来做这个标签,或者这是每个人使用的唯一解决方案。 编辑:我有一个小项目,管理员没有标签管理。 我不
1回复

查找相关标签

我正在制作一个带有特定帖子的网站,这些帖子具有用户创建的标签。 我的数据库如下所示: 我要做的是找到相关标签。 我的计划是输入一个标签作为键(例如说Happy ),然后显示Sad , Funny和Delicious 。 但我最多只想说5或6。 在实际的数据库中,有很多
1回复

将标签与数据库分开

我正在建立一个带有标签的博客。 像这样将标签保存到数据库中,所以tag1,tag2,tag3我想分别显示它们,在将它们回显出来时,有没有办法将它们分开? 谢谢
2回复

标签列表数据库

我试图建立一个表格,允许用户将图像上传到服务器上的文件夹,并将标签与数据库一起上传到数据库,以便可以搜索标签的图像,并且任何选定的图像都会显示与其连接的标签列表。 我试图做一个像在stackoverflow上的标签系统,只用图像而不是文本。 这是我到目前为止所拥有的: 多数民众赞成在
3回复

分割标签并将其提交到数据库

我正在尝试创建一个JavaScript,以拆分标签(用户提供的标签,用逗号(,)分隔标签),并将它们在数据库中的不同行中传递,但使用相同的ID。 我有此代码: 在formatsubmit.php中,这是将它们传递到数据库中的以下代码: 如果用户提供3个标签(用逗号分隔),我想将
3回复

如何在数据库中存储无限标签? [关闭]

我正在一个网站上工作,该网站要求用户为其新创建的内容提供标签(类似于stackoverflow标签)。 但是如何存储这个标签呢? ,如果使用mysql数据库,则必须设置列数和标签本身的数量限制。 由于我希望给用户无限的标记选项,应该采用哪种方法?