我想构建一个相当简单的应用程序,该应用程序在很大程度上依赖于通过多个表查询数据并返回最相关信息的能力。
我最近在关系数据库中做了一个简短的课程,但是我希望实现的目标低于我们所涵盖的范围。我有点迷失在哪里开始这个,并寻找一些关于如何处理功能和查询数据的一般信息。显然,我并不是在寻找能够回复大量代码的人,而是更多地向正确的方向发展。
我想做什么:
我想这可能与约会网站的运作方式非常相似。
根据我在课程中学到的知识,我认为我需要以下表格,但可能有更好的方法:
User (UserID, Fname, Lname, Age)
Question (QuestionID, Question, Answer1, Answer2, Answer3, Answer4, Answer5)...user would pick 1 answer here only
User/Question (UserID/QuestionID, AnswerGiven)
Pastime (PastimeID, PastimeName, Description)
User/Pastime (UserID/PastimeID)
我应该补充一点,问题的答案是多项选择,而不是用户输入的文字,因此只需要数字,即。用户已选择答案编号4.
任何人都可以指出我正确的方向:a)处理问题/答案,b)我如何将所有答案组合在一起以一次性而不是多次查询数据库,c)我如何查询数据库根据最终用户向测试用户回答问题的相似程度,返回最相关的逍遥时光。
非常感谢任何帮助。
由于
答案 0 :(得分:0)
除了我的评论之外,我认为您应该处理用户在代码中的答案。可能在SQL中使用像MIN函数这样的东西,但我不确定它会比代码更快,并且可能更慢。创建一个用户数组,其中每个数组元素都是一个用户对象,包含问题ID和answer id值的键。然后遍历一个对象和下一个对象,总结匹配数,并保存具有最多匹配数的用户。然后转到下一个用户,并执行相同的操作,只有在他有更多匹配时才保存他。如果某人完美匹配,您可能只想打破循环并返回用户。如果你想让它比第一个匹配更随机,请事先随机混合数组中的用户。