我正在努力实现类似于SO的“相关问题”功能的功能。我想为C,C ++等少数标签提出最匹配的问题。如果我想要良好的性能,或者我应该坚持像MySQL这样的传统关系数据库,是否更喜欢使用像MongoDB这样的NoSQL DB进行这种项目。
我看过一些类似的问题但不完全是我想要的 - What is the SQL used to do a search similar to "Related Questions" on Stackoverflow
答案 0 :(得分:0)
更多信息可以帮助您指明方向。您期望什么数据量?有多少并发用户会查询数据库?您是否计划将所有问题存储在数据库中,或者只是通过ID:s?
与它们相关联另外,对环境的要求是什么? Java,.NET还是其他?
如果您的目标是在标签和问题/主题之间实现关系,我会选择面向对象的数据库,并使用一些易于使用的查询语言。像:
public class Question
{
String QuestionsText;
}
public class Tag
{
String Tag;
}
public class TagPerQuestion
{
Tag ConnectedTag;
Question ConnectedQuestion;
}
然后,您可以使用TagPerQuestion轻松查询具有类似Tag的所有问题。这将是干净和容易的。这种实现可以在Starcounter(.NET),VoltDB(Linux)中轻松完成。
如果您的项目数量不是极端且simultanius用户数量很少,您可以使用像MySQL这样的传统数据库,而是用表替换类。