gpt4 book ai didi

php - Mysql - 表结构

转载 作者:行者123 更新时间:2023-11-29 02:18:40 24 4
gpt4 key购买 nike

我想实现一个计数系统如下

     test_id   email_id      attemptCount   status   score   subject
1 a@a1.com 1 Fail 5 C
1 a@a1.com 1 Pass 72 maths
1 b@a1.com 1 Pass 62 C

看看,(test_id,email_id, attempt_count, subject) 形成唯一的行。

我想为每次测试尝试插入一行。因此对于 相同的用户、相同的测试 ID、相同的主题,attemptCount 必须加一。

我该怎么做?

1) 我可以从另一个表中获取 key (测试 ID、电子邮件 ID、主题)的最后一次尝试次数

       test_id    email_id    subject   last_attempt 

2) 我可以使用触发器来自动增加尝试计数。 [我刚刚在其中一篇 SO 帖子中以这种方式阅读]

3) 我必须更改表结构。所以我将为我的每个主题准备单独的表格。所以主键组合将是 test_id, email_id, attempt_count

还有其他方法可以实现吗?哪种方法最好?

我觉得我必须重新考虑我的表结构。

编辑

如下所示,在单个单元格中有多个值是好的做法吗?

     test_id  email_id   overallStatus              overallScore  subject
1 a@a1.com [pass,fail,fail,pass] [10,2,3,10] maths

那么组合 (test_id, email_id, subject) 将只有一行。在这种情况下,我不关心 attemptCount。

我的目标是存储所有用户的所有测试的所有尝试结果。

最佳答案

我个人会使用 3 个表。

测试、主题和测试结果

我有这样的测试

test_id
email_id
//other columns such as date, description, etc

表格主题

subject_id (auto_increment)
test_id
attempts
//you can add date and the latest status or score

这就像一个历史表,以备您需要报告时使用:

测试结果

test_result_id(auto increment)
test_id
subject
status
score

因此,当您在 test_result 上进行插入时,您可以尝试使用 +1 更新主题(来自表主题),并且如果您想更新该表的最新结果(以避免对该表进行查询可能会很长,你也可以)

关于php - Mysql - 表结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35273129/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com