У меня есть эта таблицаЯ использую cassandra эффективно?
CREATE TABLE user_info (
userId uuid PRIMARY KEY,
userName varchar,
fullName varchar,
sex varchar,
bizzCateg varchar,
userType varchar,
about text,
joined bigint,
contact text,
job set<text>,
blocked boolean,
emails set<text>,
websites set<text>,
professionTag set<text>,
location frozen<location>
);
create table publishMsg
(
rowKey uuid,
msgId timeuuid,
postedById uuid,
title text,
time bigint,
details text,
tags set<text>,
location frozen<location>,
blocked boolean,
anonymous boolean,
hasPhotos boolean,
esIndx boolean,
PRIMARY KEY(rowKey, msgId)
) with clustering order by (msgId desc);
create table publishMsg_by_user
(
rowKey uuid,
msgId timeuuid,
title text,
time bigint,
details text,
tags set<text>,
location frozen<location>,
blocked boolean,
anonymous boolean,
hasPhotos boolean,
PRIMARY KEY(rowKey, msgId)
) with clustering order by (msgId desc);
CREATE TABLE followers
(
rowKey UUID,
followedBy uuid,
time bigint,
PRIMARY KEY(rowKey, orderKey)
);
делаю 3 INSERT заявления в ПАРТИИ поместить данные в
publishMsg
publishMsg_by_user
followers
таблицы.Чтобы показать одно сообщение, я должен запросить три ВЫБЕРИТЕ запрос на другой таблице:
publishMsg
- чтобы получить опубликовать детали сообщения, где дается rowkey
& msgId
.
userInfo
- получить fullName
на основе postedById
followers
- знать, то ли postedById
следует за ту или иную тему или не
Является ли это нужный способом использования Cassandra? будет эффективным, поскольку данные сканирования не могут вписаться в одну таблицу.
Что такое «rowKey» в последователях? Является ли он последователем конкретного сообщения или последователем конкретного пользователя? –
Ах, это должно быть пользователя. Когда вы говорите «Чтобы показать одно сообщение», зачем вам нужно знать последователей пользователя? –
В 'followers'' rowKey' есть некоторая тема, за которой следует пользователь, чей идентификатор 'followBy'. Поэтому из этой таблицы я хочу знать, соответствует ли данный пользователь заданной теме или нет. – manish