现在我正在使用自动增量来识别我网站中的资源。
问题是我不希望用户知道有多少资源。
我怎样才能使用某种结构化的“随机”字母和数字组合(比如6位数字),而不是(或除了)自动递增的主键数字。
基本上我希望用户看到
website.com/page.php?4jnd32
而不是
website.com/page.php?13
我甚至不知道这种做法是什么阻碍了我寻找答案的能力
答案 0 :(得分:1)
如果你真的想要这个,请创建一个新字段(例如:fake_id),然后使用php的uniqid函数。
答案 1 :(得分:0)
你可以使用GUID,虽然这会比“4jnd32”长得多。 guid是全球唯一标识符。它会唯一地识别页面,但它不会让用户知道有多少页面或给页面排序。
我不是PHP专家,但快速搜索似乎表明php具有生成GUIDs的功能。
答案 2 :(得分: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;