【发布时间】:2011-06-20 05:23:34
【问题描述】:
我的网络应用提供个性化推荐。当用户开始使用它时,大约 1000 多行被插入到一个大推荐表中,与数据库中的其他表相关联。用户投票的每个项目都会影响所有这 1000 多行。
由于推荐信息仅在会话期间有用,并且由于推荐表越来越大,我们希望切换到更合适的方法。一旦用户会话结束,就有可能删除相关行。我猜 PHP 会话数组或临时表更适合这种情况?
【问题讨论】:
标签: sql php temp-tables
我的网络应用提供个性化推荐。当用户开始使用它时,大约 1000 多行被插入到一个大推荐表中,与数据库中的其他表相关联。用户投票的每个项目都会影响所有这 1000 多行。
由于推荐信息仅在会话期间有用,并且由于推荐表越来越大,我们希望切换到更合适的方法。一旦用户会话结束,就有可能删除相关行。我猜 PHP 会话数组或临时表更适合这种情况?
【问题讨论】:
标签: sql php temp-tables
每个会话一个临时表会导致目录污染,因此不推荐。
您是否考虑过实际保留数据,以便定期挖掘数据以改进建议?
【讨论】:
首先:考虑重新设计你的数据结构,我认为这不是最优的。 将用户的推荐存储在表 user-recommendeditem-score 中:我认为不需要临时表或其他任何东西。 否则,您可以开始使用会话,但您应该仔细封装代码,以便在该解决方案不再可维护的情况下进行更改。
【讨论】:
我怀疑该方法存在缺陷 - 每个用户有 1000 多个推荐?他们曾经看了多少?如果您不知道该问题的答案 - 那么您需要花一些时间思考为什么您不知道答案。
用户投票的每个项目都会影响所有这 1000 多行
您确定您的数据已正确规范化吗?
但暂时把它放在一边。在数据库中生成/存储的正确位置 - 明确设计了关系数据库,并且在生成和维护表格数据集方面比传统编程语言更有效。
【讨论】: