gpt4 book ai didi

php - 生成唯一的数组值

转载 作者:行者123 更新时间:2023-11-29 15:00:35 26 4
gpt4 key购买 nike

我有一个这样的问题,我无法很好地解决。我的解决方案需要太多时间,并且循环使用了灾难性的大内存。所以我需要帮助。

我有 3 个 mysql 表。

  • group_id
  • 群组名称

游戏

  • 游戏 ID
  • 游戏名称

问题

  • question_id
  • 游戏 ID
  • 问题名称
  • question_text

question_groups

  • question_id
  • group_id
  • 订单

问题如下。

问题按以下方式提出。相继。问题是我需要以这种方式在 php 中创建一个 shufle 函数,我将以这种方式将每个问题分配给每个组,例如每个组的第一个问题将是唯一的,并且不会有 2 或 3 个组得到同样的问题,第二、第三、.....第十个问题也同样。

对此的最佳解决方案是什么?

我应该使用 mysql 函数还是 php 函数?

最佳答案

解决此问题的最简单方法是为 QUESTIONS_GROUPS 中的 question_id 列定义唯一约束/索引。这会限制数据,以便该值在整个表中只能出现一次 - 如果用户尝试添加重复的 question_id 值,他们将收到唯一约束错误。

这是您需要用来在 MySQL 中定义约束的语句:

CREATE UNIQUE INDEX question_idx BTREE ON QUESTION_GROUPS(question_id)

编辑:

如果您需要支持每轮仅询问一次的问题,我假设 QUESTION_GROUPS.order 列就是轮次值。假设这是正确的,请将 order 列添加到唯一约束/索引以确保唯一的值对:

CREATE UNIQUE INDEX question_idx BTREE ON QUESTION_GROUPS(question_id, order)

如果您将 group_idquestion_id 列设为表的复合主键,它将无法满足您的要求,因为它会允许 question_id 要重复的列值。

我还会定义 QUESTION_GROUPS.group_id 不允许为 NULL,否则您可以将问题分配给 NULL(不存在)组,并且必须更新现有记录或删除并使用有效组重新创建它。

引用:

关于php - 生成唯一的数组值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3273573/

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