Вы знакомы с концепцией пары ключ / значение? Предполагая, что вы знакомы с Java или C #, это на языке карты / hash / datatable / KeyValuePair (последнее в случае C #)
Как это работает, продемонстрировано на этом небольшом примере диаграммы:
Color Red
Age 18
Size Large
Name Smith
Title The Brown Dog
Если у вас есть ключ (слева) и значение (справа) ... обратите внимание, что это может быть строка, int или тому подобное. Большинство объектов KVP позволяют вам хранить любой объект справа, потому что это просто значение.
Поскольку у вас всегда будет уникальный ключ для конкретного объекта, который вы хотите вернуть, вы можете просто запросить базу данных об этом уникальном ключе и получить результаты обратно от того, какой узел имеет объект (вот почему это хорошо для распределенных систем, поскольку существуют другие вещи, такие как опрос первых n узлов для возврата значения, соответствующего другим узлам, возвращается).
Теперь мой пример выше очень прост, так что вот немного лучшая версия KVP
user1923_color Red
user1923_age 18
user3371_color Blue
user4344_color Brackish
user1923_height 6' 0"
user3371_age 34
Итак, как вы можете видеть, генерация простого ключа состоит в том, чтобы ввести «пользователь» уникальный пользовательский номер, подчеркивание и объект. Опять же, это простой вариант, но я думаю, что мы начинаем понимать, что до тех пор, пока мы можем определить часть слева и последовательно отформатировать ее, мы можем извлечь значение.
Обратите внимание, что нет никаких ограничений на значение ключа (хорошо, могут быть некоторые ограничения, такие как только текст) или на свойство значения (может быть ограничение размера), но до сих пор у меня не было действительно сложных систем. Давайте попробуем и пойдем немного дальше:
app_setting_width 450
user1923_color Red
user1923_age 18
user3371_color Blue
user4344_color Brackish
user1923_height 6' 0"
user3371_age 34
error_msg_457 There is no file %1 here
error_message_1 There is no user with %1 name
1923_name Jim
user1923_name Jim Smith
user1923_lname Smith
Application_Installed true
log_errors 1
install_path C:\Windows\System32\Restricted
ServerName localhost
test test
test1 test
test123 Brackish
devonly
wonderwoman
value key
Вы понимаете, что все они будут храниться в одной большой «таблице» на распределенных узлах (за этим стоит математика), и вы просто спросите распределенную систему о нужном вам значении по имени.
По крайней мере, это мое понимание того, как все это работает. Я могу ошибаться, но это основа.
обязательная ссылка на Википедию http://en.wikipedia.org/wiki/Associative_array