我的网站有几千个事件,由mysql数据库驱动的简单PHP页面。
我想允许我的用户“加入书签”或“保存”或“喜欢”这些对他们有趣的事件。可能只是一个简单的AJAX切换,它将从mysql中获取该事件“ID”字段并将其添加到他们的列表中。
在不杀死我的数据库的情况下,最好的方法是什么?我担心的是,当用户浏览我网站上的事件列表时,我需要在事件标题旁边显示一个小图标,该图标已经标记为“已保存”或未标记为“已保存”。我担心如果我做得不对,我会在每次加载页面时将我的数据库敲击25次。
对这个问题的任何见解?
编辑:另外,存储用户在mysql中保存的ID列表的最佳方法是什么?创建一个新表?我可以将它们放在现有用户表的字段中吗?
答案 0 :(得分:1)
您可以先查询用户最喜欢的项目,然后在呈现项目表时,如果项目被收藏,请检查此列表。
这样,只需两次查询即可完成。
这是一些伪代码:
$user_favorite_ids = getUserFavoriteItems(); // array of IDs
$page_entries = getPageEntries(); // array of objects (DB rows)
foreach(page_entries as $entry) {
// print table row
if(in_array($entry->id, $user_favorite_ids)) {
// show as "favorite"
}
}
但是,如果您的用户有数百或数千个喜爱的项目,这将不会非常有效。