mysql - 基于主表更新从属表

标签 mysql database entity-framework

我正在尝试为多项选择题系统构建一个表格,其中每个问题都有无限数量的选项可供选择(不是固定数量的选择)。这些选择的数量因问题而异。我正在尝试建立一个数据库来存储问题和选择。

Table Question
{ // Though just two fields are shown, there are many fields in the table actually
questionId;  
question;  
}

Table Choices{  
choiceId;  
questionId;  
choice;  

}

有人可能会说,我们可以通过一个字段将选项直接动态输入到问题表中,但这会重复其他字段数据。就像如果我们对一个问题有 10 个选择,那么问题表中就会有 10 行,并且有很多重复。因此,我将表格分为问题和选择。

主要问题在这里。在问题实际创建之前我们不知道问题 ID 是什么。在将数据输入选项表时,我们不能使用问题表中的问题 ID。关于如何做到这一点有什么建议吗?

最佳答案

您的结构将能够满足您正在寻找的要求。在表 Choices 中,您可以使用结合了 QuestionID 和 choiceID 的主键,这样您就可以对每个问题使用从 1 开始的 choideID,而不是尝试找出每个问题的选项从哪个 ID 开始。

至于你不知道生成什么questionID的问题,假设你的questionID是一个auto_increment列,你可以使用你的last_insert_id无论您使用什么编程语言,都可以使用该函数来查找上次插入生成的问题ID。由于您将有多个选项条目,因此您很难通过单个 SQL 插入命令来完成此操作。

关于mysql - 基于主表更新从属表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32600897/

相关文章:

python - 如何根据用户请求创建长时间查询的刷新按钮?

c# - 使用查找方法时 Entity Framework 抛出异常

mysql - 如何使用 MySql 从存储过程返回结果集?

php - 将大数据文件导入 MysQL 的最佳方式

mysql - 如何查询具有一个匹配字段和一个不匹配字段的行

c# - “逆向工程”模型优先 - 删除表和列前缀

.net - 每个开发人员都应该知道的ADO.NET Entity Framework 性能提示

PHP 准备好的语句与 mysql 多重选择不返回任何内容

mysql - 在另一列中重用列的结果

sql - Sybase Jconnect 驱动程序 - 默认获取大小是多少以及增加获取大小是否对我有利