Si has trabajado con una base de datos relacional tal vez te resulte algo confuso al principio comprender el modelo de datos que usa Cassandra, intentaré ser lo más claro posible, pero si te surgen preguntas no dudes en dejarlas en los comentarios.
Columnas
El elemento más básico de la base de datos Cassandra es la columna, se compone de tres elementos: nombre de la columna, valor y timestamp. Os muestro un ejemplo como un array:
array( "nombre" => "email", "valor" => "webmaster@localhost.com", "timestamp" => time(), );
Super columnas
Es el conjunto de columnas con sus correspondientes valores:
array( "nombre_superColumna" => array( "usuario1" => array( "nombre" => "email", "valor" => "webmaster@localhost.com", "timestamp" => time() ), "usuario2" => array( "nombre" => "email", "valor" => "email@email.com", "timestamp" => time() ), "usuario3" => array( "nombre" => "email", "valor" => "otroemail@otroemail.com", "timestamp" => time() ), ), )
Familia de columnas
Es el conjunto de columnas o super columnas. Me explico:
Las column Family o familia de columnas se puede configurar de dos maneras: como Super o como Standard. Si se elige la opción Standard, en la column family solo se podrán guardar columnas no super columnas. En cambio si la column family está configurada como Super podrá guardar, además de las columnas, las super columnas. Esta flexibilidad permite jugar con la base de datos y adaptarla a nuestras necesidades.
Ejemplo:
array( "name" => "ColumnFamily", array( "name" => "SuperColumn", array( "colums" ) ), )
Keyspace
El keyspace es nuestra base de datos, donde alojaremos todas las columFamilies que necesitemos.
Ejemplo:
array( "name" => "keyspace", array("name" => "columnFamily", array( [...] ), ), )