我对函数式编程非常感兴趣,并且最近开始深入研究它并尝试在我的项目中应用这些概念。但我认为我已经在数据库中遇到了某些问题,因为它们似乎违背了函数式编程的整个想法。
例如,用户可以拥有一组用户ID,显示谁是他们的朋友,如果我删除了用户,我想删除在friends数组中对该用户的所有引用。这听起来像我可以使用array.filter()(在javascript中),但返回一个新数组,并保持原始数组不变(作为一个纯函数应该),所以我不能实际更改数据库使用这些类型的功能。
功能编程也不适合数据库,我应该尝试在项目的不同方面应用它,或者是否有一些我不知道的东西。
答案 0 :(得分:0)
Event Sourcing是一种方式。您将核心表视为不可变的;他们只是一系列事件。可以通过按顺序重放事件来确定系统的当前状态。
这提供了审核日志并允许"时间旅行。" (Redux适用于类似的概念。)