CassandraのDBモデルに頭を悩ませようとしていますが、あまり運がありません。そこにあるほとんどすべてのドキュメントは、TwitterクローンであるTwissandraを説明していますが、実際にはかなり単純なケースであり、Cassandraを効果的に使用する方法を学ぶのに実際には役立ちません。または、それは非常に基本的な低レベルのものであり、実際の状況で列/スーパー列を使用して通常行うことを実際には示していません。
ですから、フォーラムは学ぶのに十分複雑なアプリケーションになると思いました。phpBBのようなWebフォーラムを想定します。複数のフォーラムを作成できます。各フォーラムには複数のトピックが表示され、すべてのトピックには複数の投稿があります。
私は最初、投稿、トピック、フォーラムの列を別々にすることを考えましたが、それはRDBMSでこれを実装する方法と同じように見えました。
だから今、私はスーパーカラムファミリーでネストがどれほど深くなることができるのか疑問に思っています。次の疑似モデルのようなものは、これをモデル化する適切な方法ですか?
Forums = {
forum001: {
name: "General News",
topics: {
topic000001: {
subject: "This is what I think",
date: "2012-08-24 10:12:13",
posts: {
post20120824.101213: { username: "tom", content: "Blah blah", datetime: "2012-08-24 10:12:13" }
post20120824.101513: { username: "dick", content: "Blah blah blah", datetime: "2012-08-24 10:15:13" }
post20120824.103213: { username: "harry", content: "Blah blah", datetime: "2012-08-24 10:32:13" }
}
},
topic000002: {
subject: "OMG Look at this",
date: "2012-08-24 10:42:13",
posts: {
post20120824.104213: { username: "tom", content: "Blah blah", datetime: "2012-08-24 10:42:13" }
post20120824.104523: { username: "dick", content: "Blah blah blah", datetime: "2012-08-24 10:45:23" }
post20120824.104821: { username: "harry", content: "Blah blah", datetime: "2012-08-24 10:48:21" }
}
}
}
},
forum002: {
name: "Specific News",
topics: {
topic000003: {
subject: "Whinge whine",
date: "2012-08-24 10:12:13",
posts: {
post20120824.101213: { username: "tom", content: "Blah blah", datetime: "2012-08-24 10:12:13" }
post20120824.101513: { username: "dick", content: "Blah blah blah", datetime: "2012-08-24 10:15:13" }
}
}
}
}
}