> > I need to add 'search users' functionality to my application. (The >> trigger for fetching searched items(like google instant search) is made >> when 3 letters have been typed in). >> > >> > For this, I make a CF with String type keys. Each such key is made of >> first 3 letters of a user's name. >> > >> > Thus all names starting with 'Mar-' are stored in single row (with >> key="Mar"). >> > The column names are framed as remaining letters of the names. Thus, a >> name 'Marcos' will be stored within rowkey "Mar" & col name "cos". The id >> will be stored as column value. Since there could be many users with same >> name. Thus I would have multple userIds(of users named "Marcos") to be >> stored inside columnname "cos" under key "Mar". Thus, >> > >> > 1. Supercolumn seems to be a better fit for my use case(so that ids of >> users with same name may fit as sub-columns inside a super-column) but >> since supercolumns are not encouraged thus I want to use an alternative >> schema for this usecase if possible. Could you suggest some ideas on this ? >> > >> > Aditya,
Have you any given thought on Composite columns [1]. I think it can help you solve your problem of multiple user with same name. mar:{ {cos,unique_user_id}:unique_user_id, {cos,1}:1, {cos,2}:2, {cos,3}:3, // {utf8,timeUUID}:timeUUID, } OR you can try wide rows indexing user name to ID's marcos{ user1:' ', user2:' ', user3:' ' } [1]http://www.slideshare.net/edanuff/indexing-in-cassandra