gpt4 book ai didi

database - 如何在我的在线应用程序上为每个用户存储一个数组?

转载 作者:搜寻专家 更新时间:2023-10-30 22:17:49 25 4
gpt4 key购买 nike

我正在构建一个小型在线应用程序 (PHP/MySQL),用户可以在其中注册成为成员(member),并且在成员(member)区内他们有一个他们可以参加的测验列表。

当显示给定用户的测验列表时(即他的浏览器只是请求包含列表的页面),我需要知道,对于每个测验,用户过去是否已经参加过。因为如果他这样做了,我会在旁边显示一个复选标记。这是为了帮助用户跟踪他们对网站的使用情况。

我的问题:所以基本上我需要为每个用户存储“参加的测验”列表。但我不确定这样做的最佳方式。

我目前的解决方案:每个测验都有一个 ID,因此我计划将每个用户的“已参加测验”列表作为字符串(值用逗号分隔)存储在我的数据库中.然后,当我需要使用它时,我从数据库中读取字符串并将其转换为数组(反之亦然,以便将其存储回来)。

更新:显然有 2 个可行的选项:1) 是使用我上面描述的方法将数组存储为字符串,2) 是创建另一个 MySQL 表来存储测验 ID/用户 ID 对。在这一点上,我想知道如果网站变得流行,哪种解决方案更快。使用第一个选项,我将进行额外的工作,将字符串转换为数组并返回,但之后我将搜索一个小数组(即,仅包含单个用户参加的测验)。使用 MySQL 解决方案,我不需要来回转换字符串,但我需要搜索更大的数据集(即,所有用户参加的所有测验)。猜猜哪种方法对于大量用户(例如 1000 个)来说更快?

最佳答案

如果您使用 MySQL 之类的东西,请尝试使用类似的表结构:

表:用户
用户 ID |用户名

表格:测验
quiz_id |测验名称

表格:已参加的测验
taken_id | user_id(FK) | quiz_id(FK) |时间戳

为每个参加测验的人在 quiz_taken 表中添加一个条目。此外,您始终可以添加更多列来存储更多详细信息。

关于database - 如何在我的在线应用程序上为每个用户存储一个数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9140445/

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