如堆栈溢出?
我注意到有些标签是同义词。例如餐馆和餐馆。有些标签是分层的。例如,食物 - >餐厅。
如何在mongodb中存储数据结构?
您是否有默认值为id的同义词集?
如果用户搜索餐馆或餐馆,你会怎么做?
您是否将所有搜索转换为默认表单并搜索标记,还是将搜索扩展为所有搜索的同义词?
标准方法是什么?
我正在使用mongodb。
答案 0 :(得分:1)
The StackOverflow schema is relational.(特别是MS SQL Server 2008)它维护了标签和帖子之间的多对多关系。它保持了标签与其同义词的单向关系。
您的餐馆示例似乎是一个分类系统,其中分类中的节点名称可能包含同义词。在这种情况下,分类的数据结构可能比实际节点名称更重要。如何实现同义词将高度依赖于数据结构和预期的查询模式。查看Data Modeling Patterns docs以查看各种不同的数据结构。
Mongo没有核心数据库服务器内置的任何名称别名功能。某些ORM在客户端提供有限的名称别名功能。例如mongoose through virtual attributes。这些应该谨慎使用,因为它们不会提供潜在的性能优势,并且可能会模糊数据库中真正发生的事情。