Pergunta

Eu estive pensando em implementar este sistema, mas não pode ajudar, mas sinto que há um algum lugar captura. Um dos pontos de usar GUID sobre o incremento int é que, no futuro, se você fosse para mesclar bancos de dados juntos, você não teria quaisquer confrontos sobre a chave / identificador primário. No entanto, a minha abordagem é definir o tamanho do incremento de X, onde X é o número de servidores que eu provavelmente vai ter no futuro. Então, em cada servidor, tem a semente ser um incremento sobre o número de sementes no servidor anterior. Dessa forma, durante a fusão, não haveria confrontos com a chave primária. I É este um cofre, método normal ou ter :) mentais foi? Graças

Foi útil?

Solução

Na replicação SQL multi-mestre, você normalmente tem chaves primárias definidas como:

  • GUIDs
  • int é com um tamanho de incremento> número de instalações
  • int é com um deslocamento
  • fixo

A desvantagem de GUIDs é que eles podem ser mais difíceis de ler e levar até um pouco mais espaço. No entanto, ele permite que você dimensione a n casos.

Inteiros são um pouco mais fácil de lidar. Eles também têm a vantagem de ser capaz de facilmente dizer qual servidor criou um recorde. A desvantagem é que você deve ou prever o número máximo de bancos de dados que pode ser incorporada, ou adivinhar o número máximo de linhas de uma única instância pode inserir.

Um exemplo de um deslocamento fixo é: Local A começa em 0, começa Site B em 1.000.000 e começa site C em 2.000.000. Este esquema funciona bem até que um local insere um milhão de linhas. Este esquema pode funcionar bem para carros nas concessionárias de automóveis, onde é improvável que qualquer um negociante nunca iria vender mais de 1.000.000 carros, e você pode ter centenas de concessionárias ao longo da vida da aplicação.

Outras dicas

O que me assusta aqui é o seu uso de "mais provável". Você está assumindo sobre o futuro aqui e, normalmente, isso não é uma boa coisa a ver com coisas como esta. Por que não usar um GUID?

E se você adicionar um servidor extra sobre o que você pensou que teria? Eu podia ver as coisas ficando muito complicado muito rapidamente.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top