Разработка уникальных ключей (первичных ключей) для сильно денормализованной базы данных NoSQL - PullRequest
0 голосов
/ 02 февраля 2011

Я работаю над веб-приложением, связанным с дискуссионными форумами, используя базы данных Java и Cassandra.

Мне нужно создать «ключи» для строк, в которых хранятся данные пользователя, и & другой набор строк, в которых хранится контент, публикуемый пользователем.

Один из вариантов - получить случайно сгенерированный UUID, предоставляемый языком Java, но они имеют длину 16 байтов. и поскольку база данных NoSQL связана с интенсивной денормализацией, меня беспокоит, не потрачу ли я впустую много дискового пространства, оперативной памяти и других ресурсов, если ключ можно будет генерировать в меньших размерах.

Мне нужно сгенерировать два типа ключей: один для пользователей и другой для контента, размещенного пользователями.

Для контента, размещенного пользователями, timestamp+userId будет хорошим ключом. где timestamp - время сервера, на которое был размещен контент, а userId - ключ строки пользователя.

Любые предложения, комментарии приветствуются ..

Спасибо Marcos

1 Ответ

2 голосов
/ 02 февраля 2011

Это распределенное приложение?

Тогда вы можете использовать простой синхронизированный счетчик и инициализировать его при запуске со следующим доступным идентификатором.

С другой стороны, база данных должнаобрабатывать UUID-хэши, созданные Java.Это стандарт для создания таких вещей, как sessionIds, которые должны быть уникальными.Ваша проблема в чем-то похожа, так как сеанс в вашем контексте будет представлять собой набор пользовательского ввода.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...