我正在努力寻找正确的词来传达我在研究中寻找的内容,因此我想问一下stackoverflow社区。我正在寻找最佳实践,以一次在不同的表中创建记录。
一个例子是用户注册。假设您需要在该用户注册时为该用户创建6条记录,并需要进行连接。通过连接,我的意思是,如果在用户注册时创建了用户和团队,则userID
将需要包含在团队的成员数组中。因此,需要按顺序触发记录,以便正确记录关系。因此,首先需要创建用户,然后创建团队记录,这样我才能将userID
添加到团队成员中。还要注意,用户记录稍后需要(在创建团队记录后)使用用户团队下的teamID
进行更新。
如您所见,到处都有感觉。目前,我在用户提交时触发了多个API调用。当我使用redux,firebase和react进行工作时,我预见到会发生许多潜在的错误,并且感觉好像我没有以最有效的方式进行操作。我想正确地做到这一点,并乐于进行研究,但我不确定自己在寻找什么。我希望能找到一些指南,信息,搜索词等,基本上是可以帮助我更全面地理解这个概念的东西。
答案 0 :(得分:1)
这是GraphQL和正确处理它的后端的理想选择。以KeystoneJS
为例。您可以创建一个创建用户,并通过hooks系统在内部处理所有这些操作。您还可以在一个突变中进行嵌套的创建/连接,KeystoneJS
将为您处理所有嵌套操作(如果有嵌套操作)。例如,您可以创建对象A,然后在一个突变中创建对象B。它将创建B,然后创建A,然后将A连接到B ...无需进行任何额外的工作。我只是将其作为您可以使用的工具的一个示例。这是Keystone可以处理的示例变体:
mutation CreateUser {
createUser(data: {
username: "test"
organization: {create: {
title: "test"
}}
})
}
在用户突变内部创建通知组织。
是的,我认为最好的做法是让后端(不管它是什么)进行工作。如果遇到问题并自行清理,它将失败。否则,它将产生积极的反应。我希望这会有所帮助...
对于替代方案,由于这是一个开放式问题,所以我也创建了一个nestJS
后端。这也很有效,但是用更少的内置解决方案就不会那么自以为是,因此您可以做更多的工作(但更灵活)。任何CMS都应该让您对此进行控制(Strapi
似乎正在腾飞……我只是遇到了太多的错误)。