您将如何设计一个数据库来支持以下标记功能:
- 项目可以有大量标记
- 搜索带有给定标记集的所有项目必须快速(项目必须具有所有标记,因此它是AND搜索,而不是OR搜索)
- 创建/写入项目可能会更慢,以实现快速查找/读取
理想情况下,使用(至少)一组n个给定标记标记的所有项的查找应该使用单个SQL语句完成.由于要搜索的标签数量以及任何项目上的标签数量都是未知的,并且可能很高,因此使用联接是不切实际的.
有什么 idea 吗?
谢谢你迄今为止的所有答案.
不过,如果我没弄错的话,给出的答案说明了如何在标签上进行OR搜索.( Select 具有n个标记中的一个或多个标记的所有项目).我正在寻找一个高效的搜索引擎.( Select 所有有n个标签的项目,可能还有更多.)