Inserimento dati in base a dei criteri

di il
2 risposte

Inserimento dati in base a dei criteri

Ciao tutti e buongiorno ho una tabella con 5 campi così strutturata:

id_campo1, id_campo2, id_campo3, descrizione, abilitato

Il primo campo è un boolean il secondo un tynint unsigned, i terzo un tynint unsigned, il quarto un varchar e il quinto un enum.

Il mio problema è questo per il valore zero del campo1 posso avere un duplicato nel campo3 a patto che il campo2 sia diverso, se invece il campo1 è uguale a 1 non posso avere duplicati per il campo3 e nemmeno per il campo2, in pratica il campo tre può essere ripetuto tre volte nella tabella a patto che le righe siano in questo modo

id_campo1,id_campo2,id_campo3,descrizione,abilitato
        0         0         3        Null        si     "riga valida"
        0         1         3        Null        no     "riga valida"
        1         1         3        Null        si     "riga valida"
        0         4         3        Null        si     "riga non valida"
        1         4         3        Null        si     "riga non valida"
        1         2         3        Null        si     "riga non valida"
        1         2         1        Null        si     "riga valida"


Il campo1 da boolean potrà avere solo 0 o 1 campo2 e 3 vanno da 0 a 255, quindi per uno stesso dato nel campo3 per essere valida l'immissione posso avere solo due volte 0 nel campo1 ed una solo volta 1 nel campo1, non posso avere duplicati nel campo2 se ho già due volte 0 nel campo1.

Spero di essermi spiegato, avevo pensato ad una primary Key composta dal campo1,2,3 ma in questo modo posso avere molti più valori ammissibili di quanti sono richiesti, quindi volevo capire se era possibile risolver con un trigger, e se potete darmi una linea guida per scriverlo.
Grazie

2 Risposte

Devi accedere o registrarti per scrivere nel forum
2 risposte