1 つの解決策:
テーブル
CREATE TABLE image_by_size
(
rowkey text, // arbitrary text, it can be 'IMAGE_BY_SIZE' for example
size int,
id_image text,
PRIMARY KEY (rowkey,size,id_image)
);
サイズ別に画像を一覧表示するには:
SELECT id_image FROM image_by_size WHERE rowkey='IMAGE_BY_SIZE' ORDER BY size DESC;
テーブル
CREATE TABLE image_by_view
(
rowkey text, // arbitrary text, it can be 'IMAGE_BY_VIEW' for example
view int,
id_image text,
PRIMARY KEY (rowkey,view,id_image)
);
ビューごとに画像を一覧表示するには:
SELECT id_image FROM image_by_view WHERE rowkey='IMAGE_BY_VIEW' ORDER BY size DESC;
テーブル
CREATE TABLE image_by_create
(
rowkey text, // arbitrary text, it can be 'IMAGE_BY_CREATE_DATE' for example
create_date timestamp,
id_image text,
PRIMARY KEY (rowkey,create_date,id_image)
);
イメージを作成日別に一覧表示するには:
SELECT id_image FROM image_by_create WHERE rowkey='IMAGE_BY_CREATE_DATE' ORDER BY create_date DESC;
1 つのテーブル ソリューション
サイズ、ビュー、およびタイムスタンプは数値であるため、1 つのテーブルのみを使用してこれらすべてにインデックスを付けることができます。
CREATE TABLE image_index
(
index_type text, // 'IMAGE_BY_SIZE', 'IMAGE_BY_VIEW' or 'IMAGE_BY_CREATE_DATE'
value bigint,
id_image text,
PRIMARY KEY (index_type,value,id_image)
);
サイズで画像を索引付けするには
INSERT INTO image_index(index_type,value,id_image) VALUES('IMAGE_BY_SIZE',size_as_long,id_image);
ビューごとに画像にインデックスを付けるには
INSERT INTO image_index(index_type,value,id_image) VALUES('IMAGE_BY_VIEW',view_as_long,id_image);
作成日で画像を索引付けするには
INSERT INTO image_index(index_type,value,id_image) VALUES('IMAGE_BY_CREATE_DATE',create_timestamp_as_long,id_image);