相关疑难解决方法(0)

标记数据库设计

您将如何设计数据库以支持以下标记功能:

  • 项目可以包含大量标签
  • 搜索标记有给定标记集的所有项目必须快速(项目必须包含所有标记,因此它是AND搜索,而不是OR搜索)
  • 创建/写入项目可能较慢以启用快速查找/读取

理想情况下,使用单个SQL语句查找使用(至少)一组n个给定标记标记的所有项目.由于要搜索的标签数量以及任何项目上的标签数量未知且可能很高,因此使用JOIN是不切实际的.

有任何想法吗?


谢谢你到目前为止的所有答案.

但是,如果我没有弄错的话,给出的答案显示了如何对标签进行OR搜索.(选择包含一个或多个n标签的所有项目).我正在寻找一个有效的AND搜索.(选择所有包含所有n个标签的项目 - 可能还有更多.)

sql tags tagging database-design

167
推荐指数
6
解决办法
7万
查看次数

从逻辑上思考数据库结构:向用户发布的内容添加"标签" - 单独的表格或......?

我仍然开始关注整个关系数据库 - thingymawhatsit.无论如何,我是一个PHP程序员,所以我可以做所有那些shabang.我只需要考虑这个场景的最佳方法是什么......

我正在开发一个网站(如果有任何帮助,可以使用CodeIgniter) - 一个用户可以发布内容的网站(想想一个博客风格的东西).每个帖子都必须有标签,任意数量的标签,我不能仅限于3或5.这必须是无限的.

那我该怎么办?

  1. 将标签放在同一个数据库表中的帖子旁边,即'条目'包含'post','title'和'tags'(显然是'id')
  2. 将标记放在自己的表中,并将每个标记行链接到条目('s)'id'...?
  3. ......还有别的吗?

只需要知道最好的,最逻辑的结构方式.考虑桌子彼此沟通是令人困惑的......!

哦,以及任何有任何CodeIgniter片段的人的奖励积分可能会让我继续前进;)

谢谢!

插口

php mysql database database-design codeigniter

3
推荐指数
1
解决办法
1954
查看次数

标签 统计

database-design ×2

codeigniter ×1

database ×1

mysql ×1

php ×1

sql ×1

tagging ×1

tags ×1