相关疑难解决方法(0)

标记数据库设计

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

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

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

有任何想法吗?


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

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

sql tags tagging database-design

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

用于标记多种类型实体的数据库设计

我目前正在设计一个用于存储食谱的数据库模式.在这个数据库中,我希望能够标记不同类型的实体(成分,配方发布者,食谱等).所以标签有多个n:m关系.如果我使用"三表设计",这将导致我拥有的每种实体类型(食谱,配料,发行人)的表(交叉表).换句话说,每次我介绍一个实体时,我都要为它添加一个交叉表.

我正在考虑创建一个具有唯一ID的表,所有实体都引用该表,并且在tags表和"unique id"-table之间建立:m关系.这样,"unique id"-table和tag表之间只有一个交叉表.

以防万一有人会认为这个问题已被提出.我已经阅读了数据库设计标记.并且提到了三种表格设计.

tagging database-design

5
推荐指数
1
解决办法
4456
查看次数

标签 统计

database-design ×2

tagging ×2

sql ×1

tags ×1