Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 关系数据库表模式综述_Sql_Database - Fatal编程技术网

Sql 关系数据库表模式综述

Sql 关系数据库表模式综述,sql,database,Sql,Database,我有一个包含400个问题的表格和一个包含用户(可能有100万)及其组(他们都属于不同规模的用户组)的表格。每个用户都必须回答所有问题。为了进行相互对比的分析,用户被分组在一起。这些组可以是各种大小 我应该如何记录每个用户的答案,以便根据他们的分组分析他们的答案 如果我简单地为每个用户复制问题,这将是一个庞大而笨拙的表格。“答案”表的大小约为4mil,只有1000个用户。 如果我给每个问题一个id,那么也许可以做一些更聪明的事情 (不确定这是否是针对此类理论问题的正确堆栈论坛)我将为用户、组、问题

我有一个包含400个问题的表格和一个包含用户(可能有100万)及其组(他们都属于不同规模的用户组)的表格。每个用户都必须回答所有问题。为了进行相互对比的分析,用户被分组在一起。这些组可以是各种大小

我应该如何记录每个用户的答案,以便根据他们的分组分析他们的答案

如果我简单地为每个用户复制问题,这将是一个庞大而笨拙的表格。“答案”表的大小约为4mil,只有1000个用户。 如果我给每个问题一个id,那么也许可以做一些更聪明的事情


(不确定这是否是针对此类理论问题的正确堆栈论坛)

我将为用户、组、问题和答案提供一个单独的表格

您可能想考虑在回答问题中添加一个GUPID,并帮助执行RI,它允许您直接加入一个应答组,保存一个连接和帮助索引。 通常,您可以通过两种方式对答案表进行建模,一种是每行有一个答案,另一种是每用户每个问题有一列的非常宽的表。就个人而言,当你谈到400个问题时,我甚至不会考虑第二个选项——如果你决定改变问题,它也会给你增加灵活性。

您可能需要考虑使用,以确保您的性能是可接受的


对于您正在查看的大量答案,您需要确保您的数据库是正确的。

答案表中的列是什么?我想到了“每问题列/每行用户答案”解决方案,但您是对的,这是不可靠的。你的第一个答案和我的第一个问题可能的答案是一样的;为每个用户复制问题(使用问题id的用户除外)和ad answer col?别忘了对每个用户都有相同的问题。用户是分组的,但每个用户都回答所有问题,而不是作为一个组回答。答案表解决方案非常大,只有1000个用户。我使用的mySql是否可以接受10000个用户的4000万行?如果可选的是400列表,则可以接受!一个经过良好调优的SQL数据库在这种行计数方面应该不会有太多问题。然而,如果你打算做大量的数字运算,那么一个报告数据库可能不是一个坏主意。嘿,利思,谢谢你的回复,你帮了大忙。我给你的例子不是编码需求的开始和结束,所以现成的解决方案不会有帮助,例如surveymonkey。不,这不是提出此类问题的正确堆栈论坛。另外,尽管我很想帮助你,但我没有看到任何努力,至少在你试图解决问题的帖子中。我不认为堆栈是这样做的。谢谢。这不是一个需要解决的问题,而是一个最佳实践的问题,我不知道答案。