Joomla.it Forum

Non solo Joomla... => Sviluppo => : baldo 29 May 2013, 20:00:45

: joomla e foreign key set to null
: baldo 29 May 2013, 20:00:45
ciao

joomla e foreign key

in una tabella del db ho un campo fornitore_id fk che deve potere assumere valori 'vuoti' ossia valori che non ci sono nella tabella collegata

da come la vedo si puo gestire in due modi:
 - creare una relazione fisica nel database, in questo caso il campo lo creo fornitore_id int null default null
 - non creare una reazione, in questo caso il campo lo creo fornitore_id int not null default 0

nel primo caso la relazione impedirebbe di inserire il valore zero perchè non esiste nell'id della tabella collegata


domanda
esiste in joomla una istruzione in per fare in modo che
<select name="fornitore_id">
<option value=""> seleziona </option>
nella query di update il campo sia valorizzato null
fornitore_id = null      (ok)

e non
fornitore_id = ''      ERRORE 1452 - Cannot add or update a child row: a foreign key constraint fails

grazie
: Re:joomla e foreign key set to null
: mau_develop 29 May 2013, 20:18:31
capito nulla...
quali sono le due tabelle da unire e che chiave hanno in comune?
: Re:joomla e foreign key set to null
: baldo 29 May 2013, 20:45:53
scusa provo a spiegarmi meglio

tabella_richieste
id
fornitore_id (int)

tabella_fornitori
id (int)
nome

il campo tabella_richieste.fornitore_id deve potere assumere dei valori 'vuoti', come fare?
per questi valori si puo usare null oppure zero, è così?

utilizzare lo zero non mi crea problemi, potrei usare lo zero chiudere il discorso

mi chiedevo, se si volesse usare null? come si dovrebbe fare?

il campo fornitore_id nel form:

<select name="fornitore_id">
<option value="0"> seleziona </option>
<option value="1">fornitore1</option>
. . .

quando il form viene inviato , si deve fare l'override del metodo save() per trasformare il valore di fornitore_id ??

tipo
if(empty($fornitore_id)){ $table->fornotore_id = null; }

joomla non ha una funzionalità per gestire i campi null??

ciao