На самом деле люди используют k-арные деревья для произвольного k.
Это, однако, компромисс.
Чтобы найти элемент в k-арном дереве, вы нужны операции k * ln (N) / ln (k) (помните формулу смены базы). Чем больше ваш k, тем больше операций вам нужно.
Логическое расширение того, что вы говорите, «почему люди не используют N-арное дерево для N элементов данных?». Который, конечно, будет массивом.
Итак, django 1.0 был обновлен сегодня в Google AppEngine. Но вы можете сделать аутентификацию пользователя, как и все остальное, вы просто не можете использовать сеансы, потому что это очень массивно.
Утилита сеанса находится в http://gaeutilities.appspot.com/
http://gaeutilities.appspot.com/session
http://code.google.com/p. / gaeutilities /
Или,
Вам нужно создать свои собственные таблицы пользователей и хешировать или зашифровать пароли, а затем, вероятно, создать систему токенов, которая имитирует сеанс с помощью только хеша токена или uuid cookie (сеансы в любом случае являются просто файлами cookie).
Я реализовал некоторые из них, используя только базовые заголовки запросов и ответов google.webapp. Обычно я использую uuids для первичных ключей в качестве идентификатора пользователя, затем шифрую пароль пользователя и получаю его адрес электронной почты для сброса.
Потребитель OpenID (часть отличного проекта с открытым исходным кодом "образцы движка приложений") в настоящее время работает (несмотря на предупреждения в его устаревшем README) и позволяет вы используете OpenID для входа в систему пользователей.
django auth также можно использовать, например, через этот проект (по крайней мере, часть users
, не обязательно группирует
и разрешения
, хотя они могут заставить их работать в любое время).
Посмотрите app-engine-patch для Django (ваш предпочтительный фреймворк, как я предполагаю из вашего вопроса). Он предлагает аутентификацию на gae.
В качестве альтернативы, взгляните на web2py . Это платформа на основе Python, которая работает с GAE и реляционными базами данных. Его встроенный объект Auth предоставляет пользователям, группам и разрешениям.
Он не дает неограниченного доступа к BigTable, вместо этого предлагает подмножество реляционных функций (BigTable, например, не поддерживает объединения, а web2py не [ пока] поддерживают модели BigTable).
Поддержка BigTable обсуждается сообществами Web2py и Django.