我正在使用apachecassandra在go中开发一个简单的api,我想知道什么是表示我拥有的数据的最佳方式。
我有下面的结构。
type Message struct {
Id gocql.UUID `json:"id"`
Email string `json:"email"`
Title string `json:"title"`
Content string `json:"content"`
Number int64 `json:"number"`
DateCreated time.Time `json:"dateCreated"`
}
在cassandra中创建数据结构的最佳方法是什么,以允许通过电子邮件和号码进行查询,这两种方式都不是唯一的(只有id是唯一的)。可能有多封邮件具有相同的电子邮件和/或号码)?我应该创建两个单独的表来允许这两个字段进行查询吗?
对于按id查询,我将创建如下表:
USE some_keyspace;
CREATE TABLE IF NOT EXISTS messages
(
id UUID,
email TEXT,
title TEXT,
content TEXT,
number. BIGINT,
date_created TIMESTAMP,
PRIMARY KEY (id)
);
1条答案
按热度按时间w46czmvw1#
最好的方法是什么?为要提供服务的每个查询创建一个表。使用要查询的列和生成主键定义
id
(确保唯一性):在向这些表中写入行时,请使用
BATCH
确保原子性。