Boa tarde a todos.
Olha David, realmente estou de pleno acordo em gênero, número e grau com o Entanglement, imagine voce utilizar o Passaport do Fernando Beira Mar, por outro lado, existe também a hipótese de que reaproveitar não somente a ID, mas também todo o registro deletado, pode lhe trazer algum benefício.
Hein :!: :shock: :!:
Como assim :?:
Voce já imaginou como os Bancos administram as contas de seus clientes :?:
Quando voce abre um conta, esta recebe um número que vai ter uma associação permanente ao seu nome, e quando voce encerra a sua conta, esta não é totalmente deletada do banco de dados, apenas recebe um campo com uma flag do tipo “Cliente Inativo”, isto porque suponhamos que 2 anos depois voce resolve reabrir a sua conta, como voce se sentiria ao descobrir que o banco deletou todos os seus registros, e que eles não faziam a menor importância de tê-lo como cliente :?:
Além disso, em caso de investigação da Receita Federal, como explicaria o banco que deletou o registro de um cliente que está sendo investigado, ainda mais que existem tantas contas de clientes laranjas por aí.
Outra questão de ser levada em conta também quanto a uma possível auditoria dentro da sua empresa, onde voce quer saber se um determinado registro foi deletado por sabotagem, mas como saber qual registro foi deletado e quem o deletou :?:
São estas questões que são fundamentais para o desenvolvimento de sua aplicação, no que tange se vale realmente a pena até mesmo deletar um registro, do que se preocupar com estética de organização do seu banco de dados.
Em caso de voce não querer uma tabela inchada com tantos registro cujos campos estão marcados como deletados, voce ainda tem a opção de criar uma tabela cuja estrutura seja uma clone da tabela original, onde através de uma trigger com a opção “Before Delete”, possa transferir os registros de uma tabela para outra, e ai sim, voce pode aproveitar os IDs que estão tabela auxiliar.
Outro fator que pouca gente conhece, é que em cada tabela de qualquer banco de dados, existem os ponteiros internos que servem para indicar a posição do registro na tabela, e estes sim, são automaticamente renumerados quando há deleção e automaticamente inclementados quando há inserção, através de funções internas do banco. Estes ponteiros podem ser acessados por métodos do objeto ResultSet, conhecido como “getRow()”.
Então, neste último caso, para que se preocupar em criar o auto-increment, se voce configurou a chave primária como o campo “CPF”, e também se preocupar em fazer tanta implementação de código, se o banco já faz tudo isto automaticamente pra você. :?: :idea: 8) :lol: