我一直在思考实现这个系统,但不能不感到有一个抓住的地方。其中一个点的使用GUID过增加int是,在未来,如果你是要合并数据库一起,你不会有任何冲突的主要关键/标识符。然而,我的做法是设置的递增的尺寸X其中X是服务器数量,我很可能会有的未来。然后,在每个服务器上,有的种子是一种递增的种子数量的以前的服务器。这种方式,在合并,就不会有发生冲突的主要关键。这是一个安全、正常的方法或有我走了精神:)?感谢

有帮助吗?

解决方案

在多主SQL复制,通常会有主键定义为:

  • Guid
  • int是与递增的尺寸>安装数
  • int的一个固定的偏移

下Guid是他们可以很难阅读,并采取了稍微更多的空间。然而,它可以让你的规模 n 实例。

整数是一个比较容易处理。他们还有的优点是能够轻松地告诉其服务器创建一个记录。缺点是你必须预测的最大数目的数据库,这可能会被合并,或猜测的最大数量的行一个单一的实例,可能会插入。

一个例子的一个固定的偏移是:网站开始在0,B站点开始在1,000,000和网站C开始在2,000,000的.这个方案的工作,直到一个网站插入一个亿行。这种方案可能的工作以及用于汽车,在汽车经销商,在这里这是不可能的,任何一个交易商会卖掉超过1,000,000的车,你可能会有数以百计的经销商在生活中的应用程序。

其他提示

这里让我感到害怕的是你对“最有可能”的使用。你在这里假设未来,通常这对于这样的事情并不是一件好事。为什么不使用GUID?

如果您添加一个额外的服务器而不是您认为的那样,该怎么办?我可以很快看到事情变得非常复杂。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top