Javascript “是否需要一个数据库?”;问答游戏;游戏类型?

Javascript “是否需要一个数据库?”;问答游戏;游戏类型?,javascript,html,css,database,Javascript,Html,Css,Database,我对数据库了解不多,最近我一直在问一些关于数据库的问题,以便更好地理解它们,但我仍然有点困惑什么需要数据库,什么不需要数据库 我正在使用HTML/CSS/JavaScript制作一个简单的应用程序,它有一些针对儿童的测验和“教程”。我不希望在上一个教程/测验完成之前解锁下一个教程/测验 因此,我需要一个数据库,以便在一个数据库完成时“保存”它吗?我不需要保存分数或类似的东西,他们只要在获得及格分数后继续前进 当您不使用数据库时,在进行任何检查之前,您必须加载静态页面中的所有数据 所以我的建议是:

我对数据库了解不多,最近我一直在问一些关于数据库的问题,以便更好地理解它们,但我仍然有点困惑什么需要数据库,什么不需要数据库

我正在使用HTML/CSS/JavaScript制作一个简单的应用程序,它有一些针对儿童的测验和“教程”。我不希望在上一个教程/测验完成之前解锁下一个教程/测验


因此,我需要一个数据库,以便在一个数据库完成时“保存”它吗?我不需要保存分数或类似的东西,他们只要在获得及格分数后继续前进

当您不使用数据库时,在进行任何检查之前,您必须加载静态页面中的所有数据

所以我的建议是:把学生的情况储存在饼干里。在每个页面上检查cookie状态,然后使用Jquery remove()删除(客户端)他/她无法访问的页面部分

编辑


这在禁用JavaScript时不起作用。

是否有其他要求,如保存到配置文件或需要在会话之间保持(例如更改设备)

浏览器现在有了API,允许您保存大量数据(并将其保存一段时间)。还有一些很好的“ol”风格的cookies,可以让你保存一些信息

请记住,以上两种方法都要求用户使用相同的浏览器,并允许使用这些机制。显然,使用“私人”/“隐姓埋名”浏览也会影响保存状态

这取决于你认为要求是什么


EDIT刚刚看到你提到的一个移动应用程序。如果你打算让体验超越设备,你需要一个数据库。否则,如果他们使用跨设备同步(如Chrome和Firefox对书签、密码等的同步)

如果你不介意人们可以在网页上“查看源代码”,或者使用每个浏览器的开发工具来查找答案,或者转到下一个教程或测验,那么你可以查看用户的状态。或者你可以用更好的


你可能想看看。只需在web浏览器上使用简单的JavaScript,就可以让用户轻松登录(或者只允许他们通过Facebook或其他服务登录)。然后你也可以很容易地存储和检索数据,比如测验、教程和结果。这样,即使他们擅长分析网页,也没有人能看到答案。

似乎有很多想法,但没有对数据库主题进行澄清

TL;伊斯博士:没有

现在来了解具体情况。数据库只不过是存储信息的一种方式。虽然传统的“SQL”数据库(在MySQL的“My Sequel”中读作“Sequel”)有表的概念,在表中定义列和要存储的项,并用其值保存每行,很像Excel文件,但有些数据库(如Redis)存储键值对,而另一些数据库(如lide MongoDB)存储JavaScript对象

您可以将信息存储在源代码(可能作为变量)或文件中。数据库是组织这些信息的一种方式

话虽如此,在您的情况下,您可能需要一个后端或API。API基本上是通过AJAX与服务器通信的一种方式(浏览器中的JavaScript需要一些东西)。这将是您根据需要从服务器检索信息的方式,这样用户在回答之前就不会看到答案

有了这些,就有了一些选择。FireBase(如其他答案中所述)和AppBase是轻松集成此概念的方法,只需付出很少的努力。但他们将你和你的信息与他们的系统联系起来,而且他们的目标大多是资源密集型应用

由于您使用JS,并且似乎正在享受您的学习经验,所以我建议您考虑起诉NodeJS并将数据定义为JSON文件或JS中的变量。你一直在解决你的问题,但增加了一些选择,并开始学习一些东西

如果您决定集成一个数据库并可能做一些整洁的工作,那么您已经完成了大部分基础工作

如果NodeJS选择了你的兴趣,在我看来,Mean.IO和KrakenJS是最好的起点,尽管在你的具体情况下,它们似乎都有些过分


请考虑一下:一个数据库只是一个小谜题中的一小部分,它是一个可怕的方式来命名一些试图组织你的信息的软件。首先考虑如果你需要组织信息,你需要组织什么和如何组织,然后开始考虑数据库是组织它的最好方法。< / P>是的,答案在服务器上,否则每个人都能看到答案!我有个朋友在他上的课上做了这样的东西。他使用纯JS。这取决于你是否希望人们能够通过进入他们的控制台来进行欺骗。如果你不担心欺骗,那么使用cookie记录客户的进度就足够容易了。他们可以去编辑cookie,直到最后,但它可能满足您的目的。鉴于这是针对儿童的,我不会太关心这方面的数据库。@Rogerat,如果我是一家公司的所有者(我不是),我想当场雇用那个幼儿园员。:)我计划使用Cordova将其制作成一个应用程序。我希望这个人打开应用程序,按顺序查看课程列表,但只能访问他们尚未完成的最新课程。他们不需要任何注册或积分系统,也许将来我对数据库有了更好的了解后,我可以添加这些。但由于我使用的是Cordova,这是否会使localStorage更加稳定,因为默认情况下它将始终使用相同的浏览器?此外,如果有人要清除他们的手机历史记录,这是否也会清除他们在我的应用程序中的所有进展?是的,相同的浏览器。是的,清除浏览器意味着清除他/她的状态/成就。我不确定年龄段,但你可以考虑登录