我有一个用户表:
@Table
public class User implements UserDetails {
@PrimaryKey
private UUID id;
@Indexed
private String username;
...
}
和类似这样的意见表:
@Table
public class Opinion {
..
@Indexed
private User owner;
}
由于在观点上对用户的这种引用不会自动进行,所以我发现您必须像this post中那样声明一些额外的“用户定义类型”。我想这很奇怪,就像许多样板代码一样。
[这是我很多年来经常使用Spring Data做的事情之一。
现在我一直在尝试与Cassandra DB一起玩,我真的不确定如何实现这一目标。问题:这是做这种简单引用东西的方式吗?还是我真的应该像这样引用用户ID?
@Table
public class Opinion {
..
@Indexed
private String owner_id;
}
[就像您说的那样,我们只存储对用户的引用(在我们的情况下是UUID字段)。
[当您需要检索链接到Opinion对象的用户时,您将第二个查询发送到cassandra数据库。
另一个选择是复制数据,例如将用户名直接存储在Opinion对象中。这取决于您的应用程序-当此数据可以更改时,您可能需要更新所有Opinion条目。
好文章http://patrickmcfadin.com/2014/02/05/getting-started-with-time-series-data-modeling/http://planetcassandra.org/blog/escaping-from-disco-era-data-modeling/http://www.ebaytechblog.com/2012/07/16/cassandra-data-modeling-best-practices-part-1/#.VH-OezHF_6M