Php 实施简单的审查数据库/应用程序方案

Php 实施简单的审查数据库/应用程序方案,php,mysql,database-design,yii,application-design,Php,Mysql,Database Design,Yii,Application Design,我不熟悉web开发和数据库设计,我有点困惑于如何最好地完成一个简单的项目审查系统 在当前的数据库模式中,我有一个表,称之为tbl_item,该表具有用于不同项目属性的列。我希望用户能够查看项目,并将tbl_reviews中的每个评论与特定项目相关联 当然,我在tbl_item中设置了一个引用id列的外键,但我不知道从这里可以走到哪里。基本上,我的问题是:什么应该计算审查平均数 应用程序是否应该在每次请求某个特定项目的评审分数时调用SQL,然后DB必须搜索所有tbl\u评审行,以查找具有特定项目i

我不熟悉web开发和数据库设计,我有点困惑于如何最好地完成一个简单的项目审查系统

在当前的数据库模式中,我有一个表,称之为
tbl_item
,该表具有用于不同项目属性的列。我希望用户能够查看项目,并将
tbl_reviews
中的每个评论与特定项目相关联

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

应用程序是否应该在每次请求某个特定项目的评审分数时调用SQL,然后DB必须搜索所有
tbl\u评审
行,以查找具有特定
项目id的评审

(这似乎是错误的。)DB是否应该参与进来,并拥有某种类型的计算字段、视图或存储过程来执行相同的操作

我是否应该在
tbl_item
中有一个新的列,其中包含平均分数,并在与特定项对应的任何新评论被破坏时更新


如果重要的话,我使用的是Yii(PHP)和MySQL。

基本上你是在问效率和数学

下面是我要做的:

您的数据库是关系数据库。很好,你明白了。每个评论都有一个数值?比如1-10? 假设这个例子是这样的

我想说的是,每次审核时,审核本身都会被设置在DB中,以及操作表中的队列中。具有项目id和操作类型的内容。在这种情况下,进行审查。 然后每隔一分钟左右在后台运行一个cron来检查该操作队列,如果有新的审阅或一组审阅,则为每个适用的项目运行一个算法,该算法收集审阅中可用的所有数据,并根据集合数据的标准差返回一个经过训练的数字

这样,用户或发送评论时不会实时运行数学。据我们所知,你有大量的项目和评论,所以如果你的智能脚本太重,那么实时性就不好了

至于标准差,我检查了大量的反垃圾邮件内容。我存储了所有的用户数据、IP、datetime以及我能存储的任何东西,以确保不仅仅是一个人用不同的帐户登录,每次都以10分的评分查看自己的东西。我不能相信。 另外,如果你得到100条10条看起来合法的评论,1条评论的分数为1,你可以把它作为一个仇恨者来打折扣,在结果中忽略它

您必须理解您的请求是巨大的,所以这里不可能有代码片段。 我刚才解释的是为一个大客户和一个严肃的反垃圾邮件计算器工作了4个月

祝你好运