将用户数据存储在数据库中的任何替代方法?

时间:2014-08-15 22:07:25

标签: database web-services database-design functional-programming

我正在制作网络应用程序。我想知道这里经验丰富的专家,Facebook,幻想体育,trellotodoist或Google Keep等其他网络应用程序如何存储用户的数据,而不是用户名/密码,而是用户数据我指的是数据,如状态,帖子,任务,提醒,截止日期,配置等。

我的印象是所有上述示例都需要某种数据库操作。因此,当用户要求/更改某些值时,程序将不得不查询存储这些值的数据库。但是数据库通常运行有点慢?特别是因为一个用户可能会同时要求大量信息,将大量查询等同于数据库,等同于更慢。

这些软件是否有其他方法适用?

1 个答案:

答案 0 :(得分:1)

大多数网络应用程序都有一个数据库来存储您描述的用户信息,是的。然而,这并不缓慢 - 恰恰相反。数据库已优化,可快速检索大量数据,并且非常擅长强制执行和跟踪数据集之间的关系以及查询特定集。因此,大多数Web应用程序都具有前端,服务器后端和服务器数据库的模型,服务器后端将Web请求转换为数据库查询。

这不是唯一的方式,但其他选项可能更复杂。例如,编程语言Racket具有Web服务器的内置功能,包括使用continuations在服务器请求之间存储程序状态的功能。这允许服务器基本上记住它在请求之间的运行程序状态,并允许它通过存储这些延续并通信密钥以将它们访问到浏览器来将多个请求转变为连续会话。我从来没有听说过任何其他语言提供这种功能,它可能需要一些令人费解的想法来了解它的工作原理,但它确实表明webapps的前端/后端/数据库的标准架构不是'必然是一成不变的。