Структура папки с пользовательским содержимым, основанная на идентификаторе пользователя и скрывающая всех пользователей - PullRequest
0 голосов
/ 10 июля 2011

Я пытаюсь выяснить структуру папок для хранения пользовательского контента, такого как изображения, который будет работать для огромного количества пользователей. Я собирался пойти с чем-то вроде ... 000/000/001 (идентификатор пользователя 1) .... Максимальная подпапка 999 на папку.

Но я бы хотел скрыть общее число пользователей , что легко увидеть, начиная с 1. Должен ли я начать с некоторого случайного числа, например 349203480? Я озадачен тем, как работать с папками на основе идентификатора таким образом. Есть ли какой-нибудь лучший / более простой способ?

Ответы [ 2 ]

1 голос
/ 10 июля 2011

Использовать GUID:

Согласно руководству по PHP:

<?php
/* A uniqid, like: 4b3403665fea6 */
 printf("uniqid(): %s\r\n", uniqid());

/* We can also prefix the uniqid, this the same as 
 * doing:
 *
 * $uniqid = $prefix . uniqid();
 * $uniqid = uniqid($prefix);
 */
printf("uniqid('php_'): %s\r\n", uniqid('php_'));

/* We can also activate the more_entropy parameter, which is 
 * required on some systems, like Cygwin. This makes uniqid()
 * produce a value like: 4b340550242239.64159797
 */
printf("uniqid('', true): %s\r\n", uniqid('', true));
?>

Создание уникальных папок, создание уникальных подпапок. Никто, включая вас самих, никогда не узнает, сколько у вас есть ... если вы не выполняете подсчет папок / подпапок в файловой системе или не ведете ссылку реальных пользователей на GUID

0 голосов
/ 10 июля 2011

Ну, самый простой и легкий подход - это то, что вы предложили.Предварительный подсчет пользователей по случайному числу.

Другим способом было бы добавить случайное число к вашему идентификатору пользователя.

$userid = get_user_id();
$foldername = strval($userid) . strval(rand(1, 999));

//$foldername = 11, 231, ...

Но, конечно, вышеописанный метод имеет накладные расходыпроверка, если папка уже существует.

Третий способ - использовать простое шифрование (например, rot13) для имени пользователя / идентификатора и отсчитывать добавляемую папку оттуда.Вам нужно будет сохранить количество папок или получить его на лету из каталога.Преимущество последнего метода заключается в том, что, просто зная имя пользователя, вы можете узнать, к какому пользователю он принадлежит.

...