View Full Version : [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 ???
SerMagnus
06-01-2010, 14:57
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....
anonimizzato
06-01-2010, 14:59
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 ???
Evita del tutto di usare un session_id come PK di una tabella a DB.
Al max usalo come campo UNIQUE.
Ok, grazie mille SerMagnus, mi hai chiarito il concetto.
Sgurbat, perchè non devo come PK ??? ... cosa causa ???
questa è la mia struttura ad ora:
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';
SerMagnus
06-01-2010, 16:42
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
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.