如何存储巨大的数组,用于图形[关闭]
Posted
技术标签:
【中文标题】如何存储巨大的数组,用于图形[关闭]【英文标题】:How to store HUGE arrays, for graphs [closed] 【发布时间】:2013-09-04 04:27:52 【问题描述】:使用 jQuery 创建的 Javascript 数据:
1.) 用户回答多项选择题,其中回答所需的时间(tX 以毫秒为单位)通过将其添加到数组(answerTimes)。
2.) 此外,它还会记录问题是否被正确回答(cX 二进制),并将其存储到数组中(answerCorrects (我知道;这是一个糟糕的名字。处理它))。
例如:
var answerTimes = [];
var answerCorrects = [];
// for every answer:
answerTimes[answerTimes.length] = tX
answerCorrects[answerCorrects.length] = cX
// which results in, e.g.:
// answerTimes = [1289, 1784, 1628, 972] and
// answerCorrects = [0,0,0,1,1,0,1,1,0], both of variable length,
// depending on how many questions the user has answered.
// this could well be over a thousand answers!
事情是这样的:
每章有多个图表(例如但不限于这两个)。 每个主题还有多个章节。 每种语言还有多个主题。 并且有多种语言。
例如,一个正在学习日语的用户,目前正在学习他的汉字,并且在第 4 章,想要复习他的性能数据,以图表的形式呈现。
实际问题:
假设我使用 AJAX 将这些 JS 值传递给执行 mysql 魔法的 php,为了将这些不同的数组存储在 MySQL 数据库中,哪种方式最适合?
我很担心,因为如果有 1 个用户、3 种语言、10 个主题、7 个章节和 2 个图表,那么需要存储的数组数量已经非常惊人了。 然而,这些小数字并不是我的目标:我想要市场允许的尽可能多的用户,使用尽可能多的语言——即使是古老的语言,这里也没有/开玩笑——这些数字将继续扩大时光流逝。我希望用户能够学习任何可能的语言,并尽可能多地掌握有关其性能的图形信息。
我到底应该如何以有组织的方式存储所有这些数据,以便我的脚本可以访问这些数组。我知道如何使用 mySQL,但除了一些字符串和序列化的小数组来存储之外,我什么都没有。还;如何绘制它们,我知道,困扰我的只是这些庞大而众多的数组的存储部分。
打我!
【问题讨论】:
您在问如何做 X,因为这是您在描述 Y 时所想到的;我不会将它存储在“数组”中,我会使用结构化对象。我也不一定将这些数据存储在 sql 数据库中。如果您有多个级别的遏制,请将信息显示为片段,以每个片段为基础收集数据,并使用最有意义的技术存储片段。 SQL 可能有用,(postgres 比 mysql 更安全,它可以更好地指示非法数据的错误),尽管我也可能会推荐像 redis/mongo 这样的键值存储 你有针对[].push
的私人事情吗?
对不起,迈克,但这对我来说毫无意义。我是一个非常缺乏经验的程序员,他只掌握了 PHP、MySQL、JS、html 和 CSS。甚至那些还没有完全掌握。如何将您的摘要表述为下面的完整答案,并附上示例/一些说明?那将非常有帮助,我将非常感激^^。
【参考方案1】:
您所问的任何问题(如果我理解要求的话)都没有您担心的那么困难。
听起来你可能有这样的结构:
Languages
-------------
LanguageID
Name
Subjects
-------------
SubjectID
Name
LanguageSubjects
-------------
LanguageSubjectID
SubjectID
LanguageID
Chapters
-------------
ChapterID
Name
LanguageSubjectID
Users
-------------
UserID
GraphData
-------------
UserID
ChapterID
Scores
【讨论】:
这似乎确实是正确的,但我并不仅仅询问信息的结构(我非常精通逻辑,所以逻辑结构不是我困扰的问题。明白了,兄弟!)。我在问如何存储和访问它们——使用什么(类型)代码以及什么类型的存储系统。所以:我们知道信息的结构。下一步是什么,伙计?提前感谢您的宝贵时间!【参考方案2】:我认为像 MongoDB 这样的 NoSQL 数据库会更适合该要求。
【讨论】:
+1 当然可以,因为 MongoDB 将文档存储为 JSON 对象。 是什么让您认为“MongoDB 将文档存储为 JSON 对象”? (实际上没有“JSON 对象”之类的东西。它要么是对象,要么是 JSON,它是一个字符串。)我很确定 Mongo 有自己的存储方法,它可能不是 JSON。 而 NoSQL 可能是存储统计数据的一种糟糕方式。 (有完美的 NoSQL 图数据库,但没有 Mongo。) 实际上,MongoDB 使用 BSON,这是他们的二进制 json 实现来存储数据,您没有提供替代方案。 来自MongoDB 的站点:面向文档的存储 » 具有动态模式的 JSON 样式文档提供简单性和强大功能。以上是关于如何存储巨大的数组,用于图形[关闭]的主要内容,如果未能解决你的问题,请参考以下文章