我有一张有试题的桌子。表的每一行都包含特定用户的测试问题的详细信息。
用户将获得3-5个可能的答案,我希望存储已在行中选中的答案的详细信息。我真的不想为每个答案添加新的行,因为这样会产生大量的行。
是否有一种方法可以在Server的列中存储类似于一组答案的内容?目前,我正在将数据存储为JSON字符串,但我记得Oracle有某种方式存储数组数据,我想知道SQL Server是否有相同的方法。
发布于 2014-07-23 03:02:44
一般说来,去脂并不是一个好主意。这是很少一个好主意。然而,出于性能原因,有时是必要的。所以,即使不是太慢,也不要考虑它。
如果使用TestQuestionID (或将单个问题的答案称为答案)作为聚集索引,在您的情况下创建一个辅助答案表,那么与非规范化表相比,它的性能差别就很小了。
如果我正在对您描述的表进行去not处理,我可能只需在表中创建5列,您也可以使用xml字段,但是您所存储的只是5个答案,所以在这个简单的情况下,我不会使用xml。
因为您是在问这个问题,所以您并不是一个真正经验丰富的专业人员(我们都是新手),您应该先咨询本地的sql专家,然后再去进行去denormalize。
加上警告,
既然您接受了这个答案,您确实需要明确地理解,去角色化几乎总是----做错了事情。所以每个人,包括我,都想告诉你。不要在不与DBA交谈的情况下这样做--如果您没有本地的DBA (不幸的是非常常见),请采纳集体建议,不要去否认错误。在我的职业生涯中,我只想到过一次,我认为脱脂是正确的解决办法。在许多场合,我都被错误的设计(强加于我身上),被不恰当的去休眠所咬伤。
https://stackoverflow.com/questions/24900442
复制相似问题