我建立了一个友谊网站,我尝试匹配拥有相似兴趣的用户。SQL问卷数据库设计(EAV模型)问题
- 我有25个问题,用户必须填写定义的答案(下拉答案)。
- 我使用实体属性值模型来存储用户ID问题ID用户选择的答案ID。
- 然后我使用count函数来查看哪些用户与我的配置文件最匹配。
当前的表结构
- 问表
- 回答表
- Question_Answer_User表
问题进出口运行到是我有两个问题,林不知道在哪里最好的地方是存储它们。
- 问题是你的国家是什么?
- 问题是你的状态是什么?
林不知道我是否应该存储他们的其他25个问题,或者如果我应该将它们存储在三个单独的表中,如下所示。
- 国表
- 状态表
- user_country_state表
有将是很多这些2个问题的答案项。例如,用户可以回答25个国家和用户可以回答的总共900个州/省。
我希望能够将用户位置视为相似度来计算,但我不知道最好的方法是什么?
我会添加一个“重要性”选项来衡量比赛时的问题。如果距离很重要,也许你可以跟踪用户级别的用户位置,而不是一个问题,而是对最大距离有一个疑问。然后使用诸如“Google距离矩阵API”之类的东西来计算距离。当然,如果你走这条路线,你需要使用谷歌地图来显示位置,但也可能有其他服务可以做类似的事情。 – Bob 2015-04-01 01:08:11