gpt4 book ai didi

mysql - 我应该如何在我的关系数据库中组织这个(简单的轮询系统)?

转载 作者:行者123 更新时间:2023-11-29 03:41:51 25 4
gpt4 key购买 nike

我的目标是一个简单的投票系统,用户可以在其中创建一个投票问题,为投票提供一组选项(答案)并对每个投票进行投票。我将提供一组我需要收集的简单字段。然后,我将提供我的解决方案。你能告诉我我的解决方案是否可以接受吗?

必填字段:questionText、日期、(poster)userId、options(answers)、response、(responder)userID、responseDate


我目前的解决方案:

Table: Polls
Fields: questionID, questionText, date, userID

Table: Options
Fields: optionID, optionText, questionID

Table: Respnoses
Fields: responseID, optionID, userID, responseDate


因此,要查找用户是否响应了特定的民意调查,我必须这样查询:

SELECT responseID FROM Responses
WHERE userID = [user's id] AND optionID IN(
Select optionID FROM Options
WHERE questionID = [specific questionID])


该查询也有意义吗?
提前致谢。

最佳答案

这个模型对我来说很好,查询也是如此。我是 JOIN 的粉丝,所以我会更像这样构建您的选择查询(不是推荐,只是一个澄清的替代方案):

SELECT p.questionText, o.optionText AS selected_answer, r.responseDate, r.userID
FROM Responses r
JOIN Options o ON r.optionID = o.optionID
JOIN Polls p ON o.questionID = p.questionID
WHERE r.userID = [user ID]

我唯一的想法是,根据您的需要以及您希望该系统的可审计性,您可能需要额外的字段,例如选项和民意调查表中的时间戳。 (“date_edited”与“date_created”?在低风险的情况下,这可能不需要。)

关于mysql - 我应该如何在我的关系数据库中组织这个(简单的轮询系统)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12903012/

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