【发布时间】:2012-04-18 12:47:22
【问题描述】:
我们有两个独立的系统通过网络服务进行通信。称它们为前端和后端。许多处理涉及更新后端的列表。例如,前端需要更新特定的人。目前,我们正在设计后端,我们正在决定界面应该是什么。我们将需要实际的数据库 ID 来更新底层数据库,但我们也看到将数据库 ID 传播给我们的消费者可能是个坏主意。
强制客户端(即前端)必须将 id 发送回 Web 服务以更新特定实体有哪些替代方法?我们试图避免使用 id 的另一个原因是前端通常会保存这些更改以供以后发送。这将需要前端将我们的 id 保存在他们的系统中,这似乎也是一个坏主意。
我们考虑了以下几点:
1) 将数据库 ID 发送回前端;他们必须将这些发回以处理更改
2) 将散列 ID(基于数据库 ID)发送回前端;他们必须将这些发回以处理更改。
3) 根本不强制客户端发送 id,而是让他们发送原始实体和新实体并“匹配”到我们在数据库中的实体。他们的原始实体必须与我们保存的实体相匹配。我们还必须定义什么构成了我们的实体和他们的新实体之间的匹配。
【问题讨论】:
-
yipes - 感觉 1 和 2 基本相同。还有 3 - 当你“定义”什么是匹配时 - 这几乎肯定是关键的 id ..(或者更丑 - 找到所有东西的备用键)
标签: database web-services database-design architecture