将映射表处理到外部 API

Handling mapping tables to an external API

我们的数据模型有用户。我们使用外部 API(我称之为 Z)来处理付款。我们在 Z 中创建用户,并有一个映射 table 将我们的内部 ID 链接到 Z ID。当 "environments."

之间存在一对一关联时,此方法工作正常

问题是 Z 为我们提供了一个名为 "staging." 的测试环境,但我们有多个环境,"sandbox"、"staging"、每个开发人员的本地等。理想情况下,我们可以指出各种环境到 Z 的分期,但是映射 tables 在每个环境中都是错误的。每个环境都有不同的用户群,电子邮件可能会发生冲突并指向错误的 Z ID。 Z 也不提供 删除(或归档)功能。

在这种情况下,我们如何管理这些映射 table?

这是一个常见问题。它不仅发生在处理外部系统时,而且经常发生在处理内部系统时。

你真的只有两个选择。禁止与临时环境以外的外部系统联系,或允许与多个环境中的外部系统联系。

既然你想做后者,你必须接受你在每个环境中的映射 tables 将不匹配 ID 与外部暂存环境的 ID。这应该不是问题,除非您有一些要求,即您在映射 table 中的 ID 数量与在外部环境中的 ID 数量完全相同。如果是这种情况,那么您只能选择选项 1。

更可能的是,外部环境中的每个 ID 在同一映射中都没有对应的条目 table。在这种情况下,您实际上只关心映射 table 中的每个 ID 在外部暂存环境中都有对应的 ID。

您可以通过在映射中创建 ID 之前在外部系统中创建 ID 来防止冲突 table。如果 ID 已被占用,则要求用户选择其他 ID。