Initially I started learning Cassandra because dynamic columns caught my attention. As I started learning more, I learnt that composite primary keys are preferred to dynamic columns and Cassandra is moving to schema based (Schema is optional and not compulsory but recommended). In cql3, it is compulsory though and I read cql3 is best approach for new applications in cassandra.
Here is where I face an interesting question. I was reading a particular slide (Mysql vs Casssandra) - http://lanyrd.com/2012/austin-mysql-meetup-january/spdrx/ (Jump to 31 slide) where it discusses about fraud detection use case.
"In FraudDetection To calculate risk, it is common to need to know all the emails,destinations,origins,devices,locations,phonenumbers,etcetera ever used for the account in question. "
It was explained how we have to maintain individual table for emails, destinations , origins etc in relational world and how easy it is to be in cassandra world with dynamic column key and values. (31- 34 slides).
Now that dynamic column keys and values and discouraged, how can we solve this problem ? Should we maintain individual column families for each emails, destinations etc ? Then how is it different from relational world ? Is it only about scalability ? Can we still go ahead with schema less approach ? Is this the golden rule "Schema is optional and recommended but not mandatory?"
Thanks