|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Aug 2000
Messaggi: 1209
|
[php] Utilizzare una Session come KEY
Salve,
nella Tabella "carrello" di un E-commerce vorrei utilizzare il campo "Session" che e' un VARCHAR(32) come PRIMARY KEY, è sbagliato ? C'è la remota possibilità che: il Server GENERA session_id() identiche utenti differenti ??? |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Sep 2005
Messaggi: 1400
|
come primary key tecnicamente puoi inserire quello che ti pare ovviamente usare un indice char sarà più lento rispetto che int.
per le session_id essendo gestita da php non credo che si possano verificare collisioni, ci sarà sicuramente qualche meccanismo che prima di assegnarla verifichi che non sia già in uso quell'id, altrimenti tutto il concetto di sesisone perderebbe di senso. cmq con le sessioni stai attento all'aspetto della sicurezza.... |
![]() |
![]() |
![]() |
#3 | |
Messaggi: n/a
|
Quote:
Al max usalo come campo UNIQUE. |
|
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: Aug 2000
Messaggi: 1209
|
Ok, grazie mille SerMagnus, mi hai chiarito il concetto.
Sgurbat, perchè non devo come PK ??? ... cosa causa ??? |
![]() |
![]() |
![]() |
#5 |
Senior Member
Iscritto dal: Aug 2000
Messaggi: 1209
|
questa è la mia struttura ad ora:
Codice:
CREATE TABLE `carrello` ( `sSession` VARCHAR(32) COLLATE latin1_swedish_ci NOT NULL DEFAULT '', `iID_Prodotto` INTEGER(11) NOT NULL, `iID_Variante` INTEGER(11) NOT NULL, `iQt` INTEGER(11) NOT NULL, `dtInserimento` DATETIME NOT NULL, PRIMARY KEY (`sSession`), KEY `iID_Prodotto` (`iID_Prodotto`), KEY `iID_Variante` (`iID_Variante`), KEY `dtInserimento` (`dtInserimento`) )ENGINE=MyISAM CHARACTER SET 'latin1' COLLATE 'latin1_swedish_ci'; |
![]() |
![]() |
![]() |
#6 |
Senior Member
Iscritto dal: Sep 2005
Messaggi: 1400
|
xò ora che ci penso, effettivamente nn ha molto senso usare come PK la session_id
per gestire l'eliminazione o la modifica di prodotti va a finire che ti arravogli. usando solo la session id ad esempio per eliminare un prodotto dal carrello devi fare la query passando oltre all'id di sessione anche l'id del prodotto e della variante mentre utilizzando un id numerico ti basta inviare id e session_id |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 02:13.