2011-12-01 104 views
-1

我是新来的网页开发和数据库设计,我很难为如何最好地完成一个简单的项目审查系统。实现一个简单的审查数据库/应用程序

在当前的数据库架构我有一个表,把它tbl_item,即对项目的不同性质列。我希望用户能够查看项目并将tbl_reviews中的每个评论与特定项目相关联。

当然,我有一个外键设置在引用的tbl_item id列,但我不知道在哪里可以从这里走。基本上我的问题是:什么应该计算审查平均?

如果该应用程序让每一个评价得分请求为特定项目,其中DB必须再通过所有tbl_reviews行搜索,找到那些与特定item_id时间SQL调用?

(这似乎是错误的。)如果数据库参与进来,有一些类型的计算字段或视图或存储过程,做同样的?

我是否应该在tbl_item一个新列具有平均得分它,每当对应于特定项目的任何新的评论被CRUD'ded更新?

如果有问题,我使用Yii(PHP)和MySQL。

回答

1

基本上你问的是效率和数学。

下面是我会做的:

您的数据库是关系型。好,你明白了。每个评论都有一个数值?像1 - 10? 说这个例子。

我要说的是,在每次审查,审查本身是在DB中设置以及在动作表队列。有物品ID和一种动作的东西。在这种情况下审查。 然后,您每分钟都会在后台运行一个cron,然后检查该操作队列,并在发生新的审阅或审阅时,为每个适用的项目运行一个算法,以收集审阅中可用的所有数据,根据集体数据的标准偏差返回一个受过良好教育的数字。

这样,数学运算不会由用户实时运行,也不会在发送审阅时运行。对于我们所知道的你有很多物品和很多评论,所以如果你的智力脚本很重,那么实时性会很差。

至于标准差,我检查了各种各样的反垃圾邮件。我存储了所有用户数据,IP,日期时间以及其他任何我可以确保它不仅仅是一个用不同帐户登录的人每次都以10等级评估他自己的东西。不能为此而堕落。 另外,如果你得到100 10条看起来合法的评论,1条评分评分为1,你可以将它评价为一种仇恨,并在结果中忽略它。

你必须明白你的要求是巨大的,那么代码片段都出了问题在这里。 我刚刚解释的是一个巨大的客户端和一个严重的反垃圾邮件计算器的工作4个月。

好运虽然

相关问题