Id de tabela personalizado

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. :wink: