如何为反馈系统设计数据库系统


How to design database system for a feedback systems?

嗨,我

刚刚进入PHP和MySQL,英语是我的第二语言,所以请原谅我,当我试图很好地描述我的问题时。

我正在尝试创建一个反馈系统,学生可以在其中留下有关教师的反馈。登录的学生首先选择一个科目,然后找到教授该科目的老师,并可以留下该老师的反馈。老师的所有反馈都可以被公众看到(不需要登录)老师可以登录查看反馈并将其标记为已读,一旦反馈被标记为已读,它就不会再次公开显示。

我遇到的问题不是关于想法本身或登录系统等,而是关于数据库结构。 主要是教师反馈数据库,首先对教师按学科进行分类,然后每个教师都需要存储反馈,这些反馈可以是活动的(尚未阅读)或非活动的(已阅读)。

由于我是PHP和MySQL的新手,我不知道如何设计有效的数据库,让我们举一个问题作为示例"显示老师的积极反馈数量"我可以想到几种方法来解决这个问题,但无法决定哪种方式是最好的。

解决方案1,一个庞大的数据库来存储所有内容,首先它需要按主题过滤数据库,然后按教师姓名/ID过滤,然后过滤掉不活跃的,然后计算有多少活跃的反馈

解决方案 2,给每个人一个单独的数据库,当学生留下反馈时,它直接存储到该特定教师的活动数据库中,当教师将其标记为非活动时,它将被移动到该教师的不同(非活动)数据库中,因此要找出活动反馈的数量,只需简单地计算该活动数据库中的数据数量。

解决方案

3,结合解决方案1和2,因为每个老师只能教一门科目,所以我们为每个科目创建一个大数据库,对于每个科目,我们创建一个非活动数据库,在其中存储非活动反馈,当反馈被标记为已读时,它将被传输到该数据库。 然后,要找出活跃反馈的数量,我们可以过滤主题以找到老师,只需简单地计算老师的反馈数量,因为所有不活跃的反馈都将在不同的数据库中。

我希望我没有混淆你的描述,如果你们中的任何人能告诉我在PHP和MySQL中为这个问题构建数据库的最有效方法,我将不胜感激。 谢谢!

编辑1:对不起,我的意思是表而不是数据库,所以问题是我是否应该为这个问题创建多个表或坚持使用一个表。

你可以先有学生表和教师表。在反馈表中,您可以有下列:学生、教师、评论、时间

最好

有多个表,供教师和学生使用,如果也使用登录功能会很好,主要是确保设计一个全面的步骤流程,分别选择科目和老师并不好,这样想一选科目,还应选择该特定科目的适当教师。最好创建清晰的实施流程。