Моделирование отношений один-ко-многим с Redis - PullRequest
0 голосов
/ 28 декабря 2018

Я новичок в Redis, у меня есть эта задача, где мне нужно смоделировать отношения один-ко-многим, учитывая следующие сущности:

A человек (Боб, Том, Сэм) , который может получить одно или несколько сообщений, сообщение характеризуется "текст" и "данные" .

Я сделал следующее:

SADD Bob:messages "Bob:message:1" "Bob:message:2" "Bob:message:3"

Где Боб: сообщения - это ключ набора, а «Боб: сообщение: 1», «Боб: сообщение: 2» и т. Д. - это сообщения, связанные с Бобом.

сообщения сохраняются в виде хеш-наборы каждый хэш-набор представляет сообщение Боба:

HMSET Bob:message:1 text "Hi Bob" data "20/12/2019:13:23"
HMSET Bob:message:2 text "Give me the keys" data "20/12/2019:13:24"
HMSET Bob:message:3 text "Bye Bob" data "20/12/2019:13:25"

Ключи в хеш-наборах являются значениями предыдущего набора.

Этого достаточно, чтобы смоделировать отношения один-ко-многим?

1 Ответ

0 голосов
/ 28 декабря 2018

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

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

С другой стороны, если в сообщениях есть концепция лайков или голосов, и вы хотите найти сообщения по количеству лайков - сортированный набор будет иметь больше смысла.

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