我目前在社交网站上工作。保存搜索结果的数据库结构
我的老板最近有想法显示搜索结果随机而不是正常结果(注册日期)。这个问题很简单明显:如果你从一个页面到另一个页面,每次随着列表被随机化,每次都会显示不同的结果。
我有想法存储在数据库+饼干这样的结果:
- 包含$ _ POST请求的序列化版本(需要的,如果我们想要做一个重新排序)
- 饼干这将作为基础的搜索表ID =>搜索(ID,用户
_id, creation
_date) - 这将存储结果和它们的顺序的表=>搜索
_results (search_id, order, user
_id)
流程图看起来像这样的事情:
- 每个搜索后,我存放“在那里”到一个cookie或会话
- 然后我抹去“搜索”
- 以前的搜索。然后我删除在“searches_results”
- 以前的结果的话,我行插入“搜索”为重点
- 然后我插入每个用户一行到“searches_results”
- 最后,我将用户重定向到somethink LIK e?search_id = [search_key]
这里存在一个很大的缺陷:性能......它可能使系统或降低或非常慢。
任何想法什么是最好的结构呢?
哼,这可能会伎俩。我将不得不检查MySQL如何对此做出反应。 (感谢您的评论提示我大多习惯于非线程的论坛 – Erick 2009-01-21 21:54:47