Originariamente inviato da LoRdCoStE
Salve a tutti, durante la progettazione di un modulo fatturazione per un CMS mi sono trovato ad affrontare il problema delle fatture, in particolare della loro numerazione:
- Numero univoco
- Azzeramento della numerazione a fine anno
- Problemi di concorrenza
Infine un ultimo metodo che a me sembra più elegante (e funzionante), utilizzo una chiave primaria composta da (anno,numero) dove numero è auto_increment.
Codice PHP:
CREATE TABLE fatture (
anno INT(4) NOT NULL,
numero INT(10) NOT NULL AUTO_INCREMENT,
totale DECIMAL(8,2) NOT NULL,
PRIMARY KEY (anno,numero)
) ENGINE=MyISAM;
INSERT INTO `fatture` (
`anno` ,
`numero` ,
`emissione` ,
`totale`
)
VALUES (
'2010', NULL , '2010-09-56', '101.00'
);
INSERT INTO `fatture` (
`anno` ,
`numero` ,
`emissione` ,
`totale`
)
VALUES (
'2010', NULL , '2010-09-16', '101.00'
);
INSERT INTO `fatture` (
`anno` ,
`numero` ,
`emissione` ,
`totale`
)
VALUES (
'2011', NULL , '2011-01-01', '103.00'
);
Il risultato finale è il seguente:
codice:
2010 1 2010-09-15 100.00
2010 2 2010-09-16 101.00
2011 1 2011-01-01 103.00
Secondo voi quale di queste soluzioni è la migliore? Ne conoscete altre?
Fatemi sapere cosa ne pensate, in particolare dell'ultima.