我正在做一个eLearning项目。它包括:
我需要给每堂课的总分打分(1,2或3星评分),我需要记录用户的测试数据(错误的答案,正确的答案等)。
如果我将单个课程中的值存储为列,将测试项存储为列,表将变得太大。假设我们有5000名用户,500个测验项目,100个课程。这意味着,在5000行中有500列。
帮助我减少列,并通过避免空条目使数据库优化。
发布于 2017-02-15 11:18:39
应该将这些重复列中的每一列转换为单独的行。而不是表格设计
QuizId
Item1
Item2
...
Item500这张桌子应该是
QuizId
ItemNumber -- values are 1 through 500
ItemValue然后,不再有数百列,而是有数千行,甚至数百万行。这很好。RDBMS被设计用来处理这么多,而不需要担心。
发布于 2017-02-16 06:18:41
8课程应该是一些表中的8行,而不是8列。也就是说,“不要跨列显示数组”。
发布于 2017-02-15 12:17:39
找到解决办法
实际上,我已经想出了另一种方法,我创建了一个由两个主要列组成的两个表。其中一个表有user_id、quiz_id、this和另一个用于上课的表( user_id、lesson_id、stars、score )--这解决了我的问题,但增加了我认为应该很好的行:)
https://dba.stackexchange.com/questions/164398
复制相似问题