2017-01-16 4 views
0

Я храню некоторые схемы JSON в таблице DynamoDB, которая определяется с помощью клавиш:Использование MD5 в качестве идентификатора версий

  • типа - хэш ключа
  • версия - UUID

Схема JSON будет сохранена в атрибуте schema.

Что мне интересно, было бы целесообразно использовать MD5 или другой хэш схемы blob как version uuid, в отличие от случайно созданного uuid?

ответ

0

Это несколько субъективно, поскольку это зависит от семантики атрибута версии, но если вы, как правило, считаете идентичную схему одной и той же версией, даже не в порядке, тогда да. Если нет, то нет.

Что я имею в виду, что, рассмотрим следующий сценарий:

  1. «Schema А» добавляется в таблицу, и это версия, полученный хэш является «1»
  2. элемент модифицирован и теперь имеет «Схема A1», с версией выведенной имеет «2»
  3. пункт изменен снова, и он сделан идентичен «Схема а», так что версия становится «1» снова

ли эта работа для тебя? В некоторых случаях это нормально, в других случаях это не так.

Примечание: «Схема А» и «Схема А1», «1» и «2» являются просто упрощениями без потери общности.

редактировать

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

+0

Другим важным аспектом, который следует учитывать, является положение дел с данными. Как упоминалось, это схема на основе json, поэтому один раз это могло быть {A: [1,2]}, а во второй раз это могло быть {A: [2,1]}, хотя оно может или не может представлять одно и то же md5 будет отличаться –