Un Evento Unico. 5 Sale. 27 Interventi. SEO, SOCIAL, E-Commerce, Mobile, Turismo.
CLICCA QUI e SCOPRI DI PIù X Chiudi
 
Forum GT: Condividiamo idee e conoscenza Forum GT: Condividiamo idee e conoscenza


Condividi questo contenuto nei Social Network:
Ti stiamo aspettando: Registrati subito e gratis. Entra a far parte di una delle comunità più attive in Italia. Se hai dimenticato i tuoi dati li puoi recuperare subito.


Vai indietro   Forum per Webmaster: Condividiamo Idee e Conoscenza > Sviluppo e Gestione siti web > Php - Mysql
Benvenuto! Forum Regole FAQ Lista utenti Calendario Segna come letti


Rispondi
 
LinkBack Strumenti di discussione
Vecchio 13-10-06, 20:02   #1 (permalink)
User Newbie
 
Data di registrazione: Oct 2006
Messaggi: 3
chiavi esterne... non ho capito bene, o si?

Per prima cosa un ciao a tutti (questo è il mio primo post)

Non ho ben capito se serva o no usare l'attributo foreign key.
E sono pure a digiuno di MySql 8ho dato l'esame di Basi di dati l'anno scorso...)

Cioè, so cos'è una chiave esterna, ma a quanto ho capito non si può realizzarla esplicitamente con l'attributo "foreign key" in mysql a meno di usare InnoDB.

Quindi deduco che si possa fare a meno di tale attributo. Ho pensato questa cosa: con "foreign key" gli aggiornamenti ai valori della colonna della chiave esterna vengono fatti automaticamente dal sistema quando modifico la colonna della tabella riferita.
Mentre senza tale attributo gli aggiornamenti devo farli io a manina. Cioè quando modifico la tabella esterna, devo pure modificare la colonna della tabella aventa la chiave esterna.

giusto?


-- Segolas
segolas non in linea   Rispondi citando
Vecchio 16-10-06, 10:22   #2 (permalink)
Moderatore
 
Data di registrazione: Mar 2006
Ubicazione: Perugia
Messaggi: 1,741
Beh come foreign key si usa la chiave d un'altra tabella, e lechiavi in genere non si modificano. Ad esempio se ho due tabele, utenti e ruoli, fatte in questo modo:

Utenti:
-idUtente di tipo intero
-nome varchar
-cognome varchar
-idRuolo intero

Ruoli:
-idRuolo intero
-nomeRuolo intero

Le chiavi sono gli id, e nella prima tabella idRuolo è chiave esterna. Tu potresti modificare il nome del ruolo, ma non per questo devi modificare l'id nell'utente. In genere nella seconda tabella tu modifichi il nome, ma mail l'id, quindi non dovresti avere problemi.

Spero di non aver detto cavolate!

Ciao!
cali1981 non in linea   Rispondi citando
Vecchio 16-10-06, 11:15   #3 (permalink)
User Newbie
 
Data di registrazione: Oct 2006
Messaggi: 3
No, quello che hai detto è giusto. Sono io che mi sono espresso male.

Intendevo dire (ho avuto conferme altrove) che per mantenere l'integrità referenziale, non serve per forza appoggiarsi all'attributo "foreign key" del mtore InnoDB. Ma si può fare tutto da php.

L'uso di "foreign key" è solo un modo per automatizzare l'aggiornamento delle tabelle. di certo riduce anche la possibilità di errore e visto che viene fatto tutto dal sistema, non c'è il rischio di dimenticarsi...
__________________
[url=http://www.segolas.com]Il mio blog a fumetti[/url]
segolas non in linea   Rispondi citando
Vecchio 16-10-06, 11:18   #4 (permalink)
Moderatore
 
Data di registrazione: Mar 2006
Ubicazione: Perugia
Messaggi: 1,741
COn aggiornamento immagino intendi ad esempio la delete cascade? Non so se mysql ce l'ha... Si comuqnue ovviamente puoi fare tutto da programma, nellesempio che ho fatto prima, se vedi che nella tabella utente c'è un id che non corrisponde a nessun ruolo, c'è un errore da qualche parte...

Ciao!
cali1981 non in linea   Rispondi citando
Vecchio 16-10-06, 18:17   #5 (permalink)
User Newbie
 
Data di registrazione: Oct 2006
Messaggi: 3
si, intendevo quello. Mysql lo ha usando il motore InnoDB, mentre quello di default è MyIasm (occomeccavolo si scrive)
__________________
[url=http://www.segolas.com]Il mio blog a fumetti[/url]
segolas non in linea   Rispondi citando
Rispondi
Tags: , ,



Strumenti di discussione

Regole di scrittura
Non puoi postare nuove discussioni
Non puoi rispondere alle discussioni
Non puoi allegare file
Non puoi editare i tuoi post

BB code is Attivo
smilies è Attivo
[IMG] il codice è Attivo
Il codice HTML è Disattivato
Trackbacks are Attivo
Pingbacks are Attivo
Refbacks are Disattivato
Vai al forum



Tutti gli orari sono GMT +3. Attualmente sono le 15:46.




Forum GT - © 2004-2009 GT idea S.r.l P.iva 02418200800 - Privacy/Disclaimer

SEO by vBSEO 3.2.0 ©2008, Crawlability, Inc.