2009-12-02 4 views
0

지금은 자동 증가를 사용하여 내 웹 사이트의 리소스를 식별합니다.숫자와 문자로 된 자동 증가

문제는 사용자가 얼마나 많은 리소스가 있는지 알고 싶지 않습니다.

대신 자동 증가 기본 키 수 대신 (또는 추가하여) 사용할 수있는 문자와 숫자의 구조적 "임의"조합 (예 : 6 자리)을 사용할 수 있습니다.

는 기본적으로 나는 사용자가

website.com/page.php?4jnd32 

대신

website.com/page.php?13 

보고 싶어 내가 해달라고도 이러한 행위는 대답

답변

1

하면 검색 내 능력을 방해하는 이른바 알고 당신이 정말로 이것을 원한다면, 새로운 필드 (예 : fake_id)를 만든 다음 php의 uniqid 함수를 사용하십시오.

+0

+1. 확실하게 일을하고, 합리적으로 안전하게하는 간단한 방법. –

0

"4jnd32"보다 실질적으로 길어도 GUID를 사용할 수 있습니다. GUID는 Globally Unique Identifier입니다. 페이지를 고유하게 식별 할 수는 있지만 페이지에 몇 페이지가 있는지 또는 페이지에 주문을 내릴지 전혀 알 수 없습니다.

저는 PHP에 대해 전문가가 아니지만, 빠른 검색은 PHP에 GUIDs을 생성하는 기능이 있음을 나타냅니다.

0

MySQL은 UUIDs을 지원합니다. 그러나이 작업을 자동으로 수행하려면 트리거를 사용하는 것이 좋습니다.

CREATE TABLE `tester` (
    `tester_id` INTEGER UNSIGNED NOT NULL AUTO_INCREMENT, 
    `uuid` VARCHAR(64), 
    `foo` VARCHAR(45), 
    PRIMARY KEY (`tester_id`), 
    INDEX `index_uuid`(`uuid`) 
) 
ENGINE = InnoDB; 

delimiter | 
CREATE TRIGGER tester_uuid BEFORE INSERT ON `tester` 
FOR EACH ROW BEGIN 
    SET NEW.uuid = UUID(); 
END; 
| 
delimiter; 

INSERT INTO tester (foo) VALUES('bar'), ('baz'); 

SELECT * FROM tester;