Originalmente inviato da
radiodelmomento
Non ho dimenticato le due chiavi, semplicemente ho consigliato di attribuire a
idprenotazione la key della tabella levando le altre due
In questo modo hai un ID per ogni prenotazione: questo ti permette di gestirle più semplicemente e, per ogni prenotazione, ogni cliente avrà un ID diverso e non sempre lo stesso, quindi, nell'utilizzo pratico, il cliente chiama il locale chiedendogli di eliminare la prenotazione n° 20. Procedimento: ADMIN > Elimina prenotazione > 20 > fatto.
In quel modo invece, l'amministratore prima deve cercare il cliente con quell'id, poi si deve far dire qual è l'evento a cui non parteciperà più, poi deve trovare la riga con questi esatti valori per poi eliminare la prenotazione. Personalmente lo vedo più complicato.
Guarda, guarda. Prima la tabella prenotazioni non serviva per nulla (li metto in un campo in coda al cliente) e adesso ti senti libero pure di analizzare gli indici.
Guarda che il codice si scrive in funzione della sua praticità, sicurezza ed affidabilità (su questo torno dopo), mica per la sua semplicità o nel risparmiare qualche riga di codice.
Originalmente inviato da
radiodelmomento
Per quello basta un
if, li hanno creati apposta
Ciao!
Ti fidi così tanto del codice? Se bastano gli IF, perchè mai metti le chiavi? Non basta un IF per verificare se il record è già inserito?
Ah già, devi fare un'altra query! Che sbadato!
Ma ti faccio notare una cosa.
craiamo la tabella prenotazioni come dici tu, con un campo IDPrenotazione che fa da chiave e togliamo la chiave composta. Sei sicuro che il cliente X per l'evento Y non faccia più di una prenotazione? Qualcosa del tipo
Codice:
IDPrenotazione | IDCliente | IDEvento | posti ...
1 1 1 5
2 1 1 25 ...
L'univocità degli indici c'è, delle righe no. Sei sicuro di non incappare in una eventualità del genere?
Già hai usato gli IF (ma avrai quindi fatto una query prima, quindi DUE query per OGNI inserimento piuttosto che una. Già bisogna risparmiare codice). Magari, per un motivo o per un altro una query viene eseguita due volte e ti ritrovi con righe duplicate. Cosa che poi ti costringe pure a complicare parecchio le cose per sommare i posti prenotati (ci avevi badato?).
[Modalità OT]
Ti faccio notare che tu, pur sapendone molto poco, non cerchi di aiutare, ma cerchi di aumentare il numero dei tuoi post, quasi a vantarti della scritta in basso, quel GURU che campeggia sotto al nome.
Anche in questo post, prima dici delle cose, poi usi una costruzione di altri e scrivi per intero il codice per "risolvere ill problema di una altro", giusto perchè quello che ha chiesto ha abbandonato la tua strada, palesemente errata, per seguirne un'altra, che non dico osia la migliore, ma almeno segue criteri logici. Secondo te l'hai aiutato (Posto che dare il pesce pronto piuttosto che insegnare a pescare sia la soluzione contro la fame)? Ho hai cercato la gloria?
E' solo un consiglio, abbandona la presunzione, e cerca di imparare daglli altri. NESSUNO è così grande da non poter imparare dagli altri. NESSUNO!
[/Modalità OT]