【发布时间】:2014-05-02 08:47:14
【问题描述】:
我正在尝试构建一个系统,允许用户从他们的收藏夹中添加或删除项目。我从this post开始,所以我用这种方式创建了一个连接表(我保留原始OP的项目作为示例):
CREATE TABLE user_favorites (
user_id INT NOT NULL,
movie_id INT NOT NULL,
PRIMARY KEY (user_id, movie_id),
FOREIGN KEY (user_id) REFERENCES users (user_id),
FOREIGN KEY (movie_id) REFERENCES movies (movie_id)
)
在我自己的项目中,我在一个页面上呼应了几部不同的“电影”:
try{
$con = new PDO( DB_DSN, DB_USERNAME, DB_PASSWORD );
$con->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );
$query="SELECT * FROM movies";
$res=$con->query($query);
$movies=$res->fetchAll(PDO::FETCH_ASSOC);
return $movies;
}
catch(PDOException $e){
echo 'Error : '.$e->getMessage();
}
然后我将它们格式化以适应我的需要并在页面上回显它们:
echo (formatMovies($movies));
(formatMovies 基本上是一个循环遍历所有项目并构建必要的 HTML 的 foreach。)
但事情是这样的:我想根据用户是否喜欢它们,对电影应用不同的风格。
我的问题是:检查用户是否喜欢这部电影的最佳方法是什么?什么时候我应该这样做?我是否应该在 formatMovies 循环中执行此操作,这意味着我将为 $movies 中的每个项目发送一个额外的查询?这对我来说似乎效率很低。
谢谢大家!
【问题讨论】: