scusami ancora ....
a me mi hanno sempre suggerito, e mi trovato benissimo sia per performance che per logica di manipolazione, la creazione per ogni singola tabella di un id come chiave primaria.
nella tua tabella in questione:
codice:
create table lezioni(
id_utente int,
id_attivita int,
primary key (id_utente, id_attivita),
foreign key (id_utente) references utente (id_utente) on update cascade on delete cascade,
foreign key (id_attivita) references attivita (id_attivita) on update cascade on delete cascade
);
non esiste la chiave id.
sia ben chiaro, non è un errore, ma forse non è bene non averlo
nel comando:
codice:
"INSERT INTO lezioni(id_utente,id_attivita) VALUES ('select id_utente from utente where nome=$nomeut and cognome=$cognomeut and indirizzo=$indirizzout ', 'select id_attivita from attivita where (attivita.descrizione)=($corso)')")
select id_utente from utente where nome=$nomeut and cognome=$cognomeut and indirizzo=$indirizzout
restituisce sempre un unico record?
e questa:
select id_attivita from attivita where (attivita.descrizione)=($corso)
restituisce sempre un unico record?
dalla strutura delle tabelle che hai postato direi di NO.