Search code examples
cassandracassandra-2.0cassandra-2.1cassandra-3.0

follower/following in cassandra


We are designing a twitter like follower/following in Cassandra, and found something similar enter image description here

from here https://www.slideshare.net/jaykumarpatel/cassandra-at-ebay-13920376/13-Data_Model_simplified_13

so I think ItemLike is a table? itemid1=>(userid1, userid2...) is a row in the table? what do you think is the create table of this ItemLike table?


Solution

  • Yes, ItemLike is a table

    Schema of the ItemLike table will be Like :

    CREATE TABLE itemlike(
        itemid bigint,
        userid bigint,
        timeuuid timeuuid,
        PRIMARY KEY(itemid, userid)
    ); 
    

    The picture of the slide is the internal structure of the above table.

    enter image description here

    Let's insert some data :

     itemid | userid | timeuuid
    --------+--------+--------------------------------------
          2 |    100 | f172e3c0-67a6-11e7-8e08-371a840aa4bb
          2 |    103 | eaf31240-67a6-11e7-8e08-371a840aa4bb
          1 |    100 | d92f7e90-67a6-11e7-8e08-371a840aa4bb
    

    Internally cassandra will store the data like below :

    --------------------------------------------------------------------------------------|
    |    |             100:timeuuid              |            103:timeuuid                | 
    |    +---------------------------------------+----------------------------------------|
    |2   | f172e3c0-67a6-11e7-8e08-371a840aa4bb  |  eaf31240-67a6-11e7-8e08-371a840aa4bb  |
    --------------------------------------------------------------------------------------|
    
    ---------------------------------------------|
    |    |             100:timeuuid              |
    |    +---------------------------------------|
    |1   | d92f7e90-67a6-11e7-8e08-371a840aa4bb  |
    ---------------------------------------------|