Autoincrementi e duplicati | Progettazione di DataBase Relazionali

Topic: Pubblico - Composto da 4 Posts di 3 Utenti.

04 Dicembre, 2011 09:09 #1
SHARKSEAL
Utente

SHARKSEAL
Registrato: Dec, 2011
Posts: 3
Offline

Ciao ragazzi spero di aver usato la sezione giusta ... se così non fosse vi chiedo scusa !!!

Sto facendo un'applicazione java su mysql

Vorrei porvi due quesiti:

1) Avrei una form di inserimento dati utenti ... in cui è previsto sia il campo codice fiscale che partita iva, oltre che nominativo ed altre informazioni
Capita che per alcuni venga inserito il codice fiscale ... per altri la partita iva ... e per altri entrambi ... non è una regola fissa insomma. Come faccio a evitare inserimenti di utenti duplicati ... o meglio quale chiave posso usare per evitare la duplicazione dei record visto che a volte viene inserito l'uno(codice fiscale) e a volte l'altro(partita iva) ???

2) Avrei la necessita di occupare l'id in una tabella ... gia dall'inizio per un utente fisso che viene creato con il database e poi far partire l'autoincrement da 1 ... come posso fare ???

Esempio : primo record ... id (3000) nominativo (Pippo) ecc ecc ... e poi far partire l'auto incremento da 1 e man mano che inserisco il db provede ad assegnarli automaticamente...
una volta che poi arrivo alla posizione 3000 (gia occupata) la salta e assegna 3001

grazie a tutti per l'aiuto !!!

05 Dicembre, 2011 11:16 #2
fuser
Utente

fuser
Registrato: Aug, 2011
Posts: 86
Offline

Ciao

1) Usa un indice UNIQUE che comprenda entrambi i campi (NON due indici diversi)
2) Non credo proprio che si possa fare. Perchè non inizi invece da 2? Comunque se proprio vuoi provare, per spostare il "cursore" di autoincrement:
ALTER TABLE xxxxx AUTO_INCREMENT = 1;

05 Dicembre, 2011 14:43 #3
re-verse
Moderatore

re-verse
Registrato: Jul, 2008
Posts: 312
Offline

Ciao, spero di poterti chiarire le idee: è un errore comune quello di considerare il campo autoincrement come 'contatore' di record. In realtà non è questo il suo scopo, per cui... il problema di riempire i 'gap' di autoincrement non dovresti portelo.

Per il problema dei duplicati invece, questa è una cosa che si risolve durante la progettazione della tabella stessa, nel tuo caso, prima ancora di creare una tabella hai deciso quali sono le regole tali per cui un campo è sostanzialmente un duplicato? Questo aiuta molto poi nelle fasi successive.

Ultima modifica 06 Dicembre, 2011 08:18 di re-verse


Salvatore DC

La mente è come un paracadute: funziona solo se si apre. A.Einstein.

06 Dicembre, 2011 02:47 #4
SHARKSEAL
Utente

SHARKSEAL
Registrato: Dec, 2011
Posts: 3
Offline

Seguirò il vostro consiglio

Grazie ad entrambi !!!

Condividi su:

Loggati o Registrati per replicare