对于如何识别应用程序中的元素,我有点困惑。
我有一个带有sql数据库的rest后端。我目前使用数字(自动增量)I作为主键,并将它们用于外键。我还定义了基于语义的统一。
我的客户端是一个应用程序,我大部分时间都在镜像远程数据库。这样做的目的是有一个缓存(性能),并使应用程序离线使用成为可能。离线使用可以是临时的,也可以是永久的(用户可以使用该应用程序,而无需连接到服务器)。
到目前为止,我一直在用在线使用的方式来实现客户端。因此,当用户创建一个新项目时,我将向服务器发送一个POST,服务器创建该项目并给它一个id,并将该项目与id一起发送回我,并将其存储在本地数据库中。这样,我将在客户端数据库中使用这个id作为外键。
但是离线使用不是这样的。当我添加一个没有服务器的项目时,我必须在客户机中给它一个id。因此,这是立即可用的更新,使用外键等。此外,当脱机只是暂时的,即用户稍后连接到服务器,我必须同步的项目被添加离线。如果我使用客户端it,我将不得不用服务器生成的it在服务器中重新安装这些it,否则数据库看起来会不一致,而且它可能会发生冲突(尽管非常容易改进)。还是只使用客户端的ids?
所以我的问题是,这是如何处理正常的?我能想到四种方法:
发布于 2015-06-18 09:30:45
没有任何方法可以让你有一个以上的方法来唯一地识别你的实体。你能做的最好就是咬紧牙关,把问题限制在尽可能小的范围内。
例如:
没什么比这更简单的了。(当然,根据不要重复自己的原则,将需要更改的位置最小化以使该解决方案变得更容易是一个好主意。)
https://softwareengineering.stackexchange.com/questions/287163
复制相似问题