我们大家都喜欢评定内容的等级。我认为这是人类与生俱来的秉性。我和我的女儿都喜欢去电影院看电影;虽然她过去对电影的内容毫不讲究,不过现在却挑剔了许多,因为她已经四岁了。我曾经教过她使用 “大拇指朝上” 和 “大拇指朝下” 的评级系统 à la Ebert 和 Roeper。(她曾经为 Shrek the Third 这部电影竖起了大拇指。)我认为这就是人们乐于在因特网上评论产品和文章的原因所在。
本文将介绍如何结合使用 MySQL、PHP、Prototype.js 和 Asynchronous JavaScript™ and XML (Ajax) 在站点中添加简单的评级和评论功能。
评级系统
虽然我女儿乐于使用大拇指进行评级,不过大多数人更倾向于另一种略有差别的评级系统:五星级评级系统,其中一颗星为最差,三颗星为中等。在本例中,我将使用五星级评级系统对电影进行评级。您也可以将本文中评级系统应用于需要的内容 — 如文章、产品和播客。
清单 1 显示了本例所使用的模式,其中创建了一个初始的 movies 表。这相当简单:在表中定义一个自动递增的电影 ID 和电影名称。然后,创建一个 rating 表保存电影的投票结果。这个表通过 movie_id 与 movie 表绑定在一起,表中还包含一个 rating 字段,取值范围为 1 到 5。 清单 1. rating.sqlDROP TABLE IF EXISTS movies; CREATE TABLE movies ( movie_id INTEGER NOT NULL AUTO_INCREMENT, name VARCHAR( 128 ) NOT NULL, PRIMARY KEY ( movie_id ) ); DROP TABLE IF EXISTS ratings; CREATE TABLE ratings ( movie_id INTEGER NOT NULL, rating INTEGER NOT NULL );
如果要执行 “一人一投” 的模式,则必须在 ratings 表中添加一个用户 ID,从而确保每个人只能对一部电影评定一次。考虑到程序的简单性,我并没有实现这一功能。
我们大家都喜欢评定内容的等级。我认为这是人类与生俱来的秉性。我和我的女儿都喜欢去电影院看电影;虽然她过去对电影的内容毫不讲究,不过现在却挑剔了许多,因为她已经四岁了。我曾经教过她使用 “大拇指朝上” 和 “大拇指朝下” 的评级系统 à la Ebert 和 Roeper。(她曾经为 Shrek the Third 这部电影竖起了大拇指。)我认为这就是人们乐于在因特网上评论产品和文章的原因所在。
本文将介绍如何结合使用 MySQL、PHP、Prototype.js 和 Asynchronous JavaScript™ and XML (Ajax) 在站点中添加简单的评级和评论功能。
评级系统
虽然我女儿乐于使用大拇指进行评级,不过大多数人更倾向于另一种略有差别的评级系统:五星级评级系统,其中一颗星为最差,三颗星为中等。在本例中,我将使用五星级评级系统对电影进行评级。您也可以将本文中评级系统应用于需要的内容 — 如文章、产品和播客。
清单 1 显示了本例所使用的模式,其中创建了一个初始的 movies 表。这相当简单:在表中定义一个自动递增的电影 ID 和电影名称。然后,创建一个 rating 表保存电影的投票结果。这个表通过 movie_id 与 movie 表绑定在一起,表中还包含一个 rating 字段,取值范围为 1 到 5。
清单 1. rating.sqlDROP TABLE IF EXISTS movies; CREATE TABLE movies ( movie_id INTEGER NOT NULL AUTO_INCREMENT, name VARCHAR( 128 ) NOT NULL, PRIMARY KEY ( movie_id ) ); DROP TABLE IF EXISTS ratings; CREATE TABLE ratings ( movie_id INTEGER NOT NULL, rating INTEGER NOT NULL );
如果要执行 “一人一投” 的模式,则必须在 ratings 表中添加一个用户 ID,从而确保每个人只能对一部电影评定一次。考虑到程序的简单性,我并没有实现这一功能。
(编辑:aniston)
|