Database design 数据库结构问题,对于ramdomaly调用的多个问题

Database design 数据库结构问题,对于ramdomaly调用的多个问题,database-design,Database Design,我想创建一个网站来训练多项选择题,问题是我不想为每个用户重复这个问题,我会有很多问题,随机得到同一个问题的概率非常小,对我来说很重要的是,用户看不到同一个问题,所以这样做有必要吗?我怎么能做到这一点。。我想保存一个所有问题id的列表,并使用它调用尚未使用的新问题并保存更改…这样我必须保存登录时加载的字符串,包含所有问题,这是一种有效的方法吗 欢迎任何想法改变结构,使其更好我认为你的基本想法是正确的。将用户已回答的问题的ID存储在某处。近似 asked_questions ------

我想创建一个网站来训练多项选择题,问题是我不想为每个用户重复这个问题,我会有很多问题,随机得到同一个问题的概率非常小,对我来说很重要的是,用户看不到同一个问题,所以这样做有必要吗?我怎么能做到这一点。。我想保存一个所有问题id的列表,并使用它调用尚未使用的新问题并保存更改…这样我必须保存登录时加载的字符串,包含所有问题,这是一种有效的方法吗


欢迎任何想法改变结构,使其更好

我认为你的基本想法是正确的。将用户已回答的问题的ID存储在某处。近似

      asked_questions
--------------------------
user_id           int
question_id       int
有了这个,你可以很容易地做到

SELECT * FROM questions WHERE questions.id NOT IN (SELET asked_questions.question_id FROM asked_questions WHERE asled_questions.user_id = currentLoggedInUserId) LIMIT 10;

还有10个用户还没有看到的问题。

嗨,我担心存储效率,如果我有10000个问题和1000个用户。。。它有超过1000万条2整数的记录。。。。超过80 GB,我还记得表格中最后100个问题!!这是一个很好的解决方案吗?不要认为用户会记住更多。。。这会使设计变得困难吗??因为我需要知道要更新的记录id!!!!如果使用适当的索引,这应该不会有问题。1亿条条目并不多,应该由设计良好的数据库轻松处理。您可以将日期与每个问题一起存储,这样您就可以知道用户最后一次回答问题的时间,并可以根据日期做出决定。