Това е малко измислен пример, за да илюстрира въпроса ми, но да кажем, че имам обект Car, който съдържа обекти Lightbulb. Една кола има няколко електрически крушки, всяка от които може да бъде "включена", "изключена" или "счупена".
Всеки тип електрическа крушка има уникален идентификатор. (ляв фар = 100, десен фар = 101... такива неща)
Състоянието на електрическа крушка трябва постоянно да се актуализира.
Това, което бих искал да направя, е да направя заявка за конкретна кола за комплект електрически крушки с конкретно състояние.
нещо като: "дайте ми всички електрически крушки с статус "включени" за кола "chevy" модел "nova" vin "xyz-123"".
create table lightbulbstatus (
bulbid uuid,
carmake text,
carmodel text,
carvin uuid,
lastupdate timestamp,
status int,
/* row key * /* col keys */
PRIMARY KEY( (carmake, carmodel, carvin), ? ? ? ?)
);
Вярвам, че ключът на реда трябва да съдържа координатите на автомобила, но освен това съм малко изгубен. Предполагам, че всеки път, когато има промяна на състоянието на крушка, добавяме колона. Но не съм сигурен какви трябва да са ключовете в колоната, за да работи заявката.
Мисля, че в RDBMS-land можете да направите подизбрана или вложена заявка, за да намерите крушки със статус = включено.
select * from lightbulbstatus where status = 1 and lastupdate > (select lastupdate from lightbulbstatus where status != 1);
Нямам идея как бихте направили това в CQL3. Очевидно подизборите не са разрешени.