2015-05-17 2 views
0

Я хочу создать базу данных для приложения iOS, состоящего из групп, имеющих одно и то же имя. Я размещаю свою базу данных на AWSDynamo.Сохранение целого числа, доступного всем мобильным пользователям

Поскольку несколько групп могут иметь одинаковое имя, я планировал иметь идентификатор groupID как hashkey, если только кто-то не может предложить лучший метод.

Моя основная проблема - хранить целое число, которое будет числом групп. Это значит, что когда пользователь создает новую группу, число будет увеличиваться, а новая группа получит этот номер в качестве своего идентификатора groupID.

Как сохранить целое число так, чтобы все пользователи могли получить к нему доступ из приложения?

ответ

1

UUID - Универсально уникальный идентификатор

Вы можете использовать UUID (String) в качестве GroupID в таблице групп, и использовать условные операции записи (PutItem, UpdateItem) для обработки крайне редкий случай, когда происходит столкновение. Если вы создаете UUID для новой группы, где UUID уже назначен другой группе, вы получите исключение ConditionalCheckFailedException, чтобы повторить попытку с новым UUID. Вам не нужно использовать инкрементную последовательность для уникальной идентификации групп.

+0

На самом деле UUID является * not * a String, но имеет 128-битное значение, большее количество невообразимо большого числа. Для представления значения UUID мы создаем строковое представление UUID в каноническом формате с использованием символов [hexadecimal] (https://en.wikipedia.org/wiki/Hexadecimal) и четырех дефисов. Пример: 'de305d54-75b4-431b-adb2-eb6b9e546014'. Спецификация для UUID требует строчного шестнадцатеричного кода, но многие реализации генераторов UUID нарушают это правило. iOS предоставляет средство для генерации UUID; см. [этот вопрос] (http://stackoverflow.com/questions/14352418/how-to-generate-uuid-in-ios). –

+0

Что касается коллизий в генерируемых значениях UUID, то это * не * практическая проблема. При правильной реализации генератора UUID столкновения практически невозможны, и я имею в виду «практически» в самом крайнем смысле. Тем более, если вы используете оригинальную версию 1 (MAC-адрес и дату-время). –

+0

Я сказал очень маловероятно. В противном случае вы все равно поднимаете действительные баллы. –

Смежные вопросы