이해하기 : session_id
, ip_address
및 user_agent
.CodeIgniter의 세션 테이블 구조
CREATE TABLE IF NOT EXISTS `ci_sessions` (
session_id varchar(40) DEFAULT '0' NOT NULL,
ip_address varchar(45) DEFAULT '0' NOT NULL,
user_agent varchar(120) NOT NULL,
last_activity int(10) unsigned DEFAULT 0 NOT NULL,
user_data text NOT NULL,
PRIMARY KEY (session_id, ip_address, user_agent),
KEY `last_activity_idx` (`last_activity`)
);
최대한 많이 설명해주십시오. 또한이 구조를 개선하기위한 제안을 듣고 싶습니다. 인덱스가 아닌 ip_address
및 user_agent
primary_keys 인 이유는 무엇입니까? 차이점이 뭐야?
또 다른 정보로,이 표는 시스템에 대한 모든 사용자 액세스에 행을 추가하므로 매우 부풀어 오릅니다.
편집 : 마음에 떠오르는 또 다른 질문입니다. 사용자 에이전트와 일치하는 이유는 무엇입니까?
예, 모든 다른 사용자는 행을가집니다. 또한, 가비지 수집 된 이전 세션 데이터 인 또 다른 행이 있습니다. – enapupe
그래서 내 응용 프로그램에서 IP_ADDRESS와 일치하지 않는다고 결정하면 PK에서 제거해야합니까? – enapupe
많은 사용자가 자주 변경되는 동적 IP 주소를 가지고 있기 때문에 모뎀이 다시 동기화 될 때 재부팅됩니다. 그래서 나는 보통 IP_ADDRESS와 비교하여 세션을 일치시키지 않습니다. 그것은 많은 웹 사이트들이하는 일입니다. 페이 스북, 구글 .. – enapupe