我可以在操作数据库时应用函数式编程概念吗?

时间:2017-11-08 14:34:28

标签: javascript database functional-programming

我对函数式编程非常感兴趣,并且最近开始深入研究它并尝试在我的项目中应用这些概念。但我认为我已经在数据库中遇到了某些问题,因为它们似乎违背了函数式编程的整个想法。

例如,用户可以拥有一组用户ID,显示谁是他们的朋友,如果我删除了用户,我想删除在friends数组中对该用户的所有引用。这听起来像我可以使用array.filter()(在javascript中),但返回一个新数组,并保持原始数组不变(作为一个纯函数应该),所以我不能实际更改数据库使用这些类型的功能。

功能编程也不适合数据库,我应该尝试在项目的不同方面应用它,或者是否有一些我不知道的东西。

1 个答案:

答案 0 :(得分:0)

Event Sourcing是一种方式。您将核心表视为不可变的;他们只是一系列事件。可以通过按顺序重放事件来确定系统的当前状态。

这提供了审核日志并允许"时间旅行。" (Redux适用于类似的概念。)