how to have relations many to many in redis -


in relational database, have user table, category table , user-category table many many relationship. what's better form of have structure in redis?

with redis, relationships typically represented sets. set can used represent one-way relationship, need 1 set per object represent many-to-many relationship.

it pretty useless try compare relational database model redis data structures. redis, stored in denormalized way.

example:

# here categories > hmset category:1 name cinema  ... more fields ... > hmset category:2 name music   ... more fields ... > hmset category:3 name sports  ... more fields ... > hmset category:4 name nature  ... more fields ...  # here users > hmset user:1 name jack   ... more fields ... > hmset user:2 name john   ... more fields ... > hmset user:3 name julia  ... more fields ...  # let's establish many-to-many relationship # jack likes cinema , sports # john likes music , nature # julia likes cinema, music , nature  # each category, keep set of reference on users > sadd category:1:users 1 3 > sadd category:2:users 2 3 > sadd category:3:users 1 > sadd category:4:users 2 3  # each user, keep set of reference on categories > sadd user:1:categories 1 3 > sadd user:2:categories 2 4 > sadd user:3:categories 1 2 4 

once have data structure, easy query using set algebra:

# categories of julia > smembers user:3:categories 1) "1" 2) "2" 3) "4"  # users interested music > smembers category:2:users 1) "2" 2) "3"  # users interested both music , cinema > sinter category:1:users category:2:users 1) "3" 

Comments

Popular posts from this blog

jquery - Invalid Assignment Left-Hand Side -

java - Play! framework 2.0: How to display multiple image? -

gmail - Is there any documentation for read-only access to the Google Contacts API? -