Во-первых, позвольте мне подтвердить: этот конкретный тип данных несколько реляционный по своей природе. Это просто зависит от того, как именно вы хотите структурировать этот тип данных, и какие технологии вам доступны для этого конкретного проекта. Тем не менее, как вы хотите, чтобы ваши данные структурированы?
Если вы можете структурировать свои данные любым удобным для вас способом, вы можете сделать что-то вроде этого:
{
name: 'Joe',
email: 'joe.bloggs@ex.com',
posts: [
{
id: 123,
title: "My post"
},
{..}
]
}
Где все сообщения содержались в одной конкретной паре ключ / значение. Этот конкретный тип данных, который я бы сказал, уникально подходит для Riak (из-за возможности внутреннего запроса к JSON с использованием встроенного JavaScript). Хотя вы, вероятно, могли бы прийти к этому с любой точки зрения хранилища данных NoSQL ( Cassandra , Couch , Mongo и др.), так как большинство из них могут хранить прямо в формате JSON. На данный момент у меня просто есть склонность к Риаку из-за моего личного опыта.
Более интересные вещи, с которыми вы, вероятно, столкнетесь, будут связаны с тем, как вы справляетесь с хранилищем данных. Например, мне действительно нравится использовать Ripple для Ruby, что позволяет мне очень легко работать с такими данными в Riak. Но если вы находитесь на земле Java, это может усложнить принятие этого метода (хотя я не потратил много времени на изучение принятия Riak на Java), так как он имеет тенденцию отставать от стиля 'edge' методы хранения данных.
Более того, заставить мозг начать думать в терминах NoSQL или без использования «отношений» - это то, что обычно занимает больше всего времени в структурировании данных. Поскольку нет схемы, и нет никаких предвзятых мнений, которые идут с ней, это означает, что вы можете делать много вещей, которые считаются просто неправильными в мире реляционных БД. Например, хранить все сообщения в блоге для одного пользователя в одном документе, что просто не сработает в стандартном реляционном мире со строгими таблицами.