Bom dia,
Preciso fazer um campo ID personalizado no formato ANO + SEQUENCIA (ex: 201500001).Quando mudar o ano a SEQUENCIA zeraria e o ANO receberia o ano corrente.
Não dispensaria o uso do ID da tabela, mas esse ID personalizado é para ficar mais apresentável ao cliente.
Utilizo PHP + MySql. Qual seria a melhor forma?
Já pensei em trigger e fazer em php. Poderiam me ajudar?
E que tal chave composta?
Dois campos que compõe a primary key … que tal?
Não é dificil de fazer…
seria algo tipo:
CREATE TABLE `teste` (
`ano` INT NOT NULL COMMENT '',
`sequencia` INT NOT NULL COMMENT '',
`demais_colunas` VARCHAR(45) NULL COMMENT '',
PRIMARY KEY (`ano`, `sequencia`) ')
ENGINE = InnoDB
Att
Gostei dessa alternativa, mas mesmo assim eu teria que tratar essa sequenciae o ano. acha que poderia ser melhor feito em php ou direto no mysql?
É sempre mais interessante deixar a gestão das chaves direto com o banco.
O ideial seria ter uma sequence no banco que retornaria o prox. valor disponivel sempre que você precisar…
Obviamente a cada virada de ano essa sequence deve ser zerada.
Tem que dar uma estudada nessa parte, como o MySQL se comporta com chave composta… mas sempre dê preferencia para o banco cuidar destas coisas p/ você, quando possível. 