1

次の状況を考慮してください。

次のフィールドを持つページがあります。

pageid, title, content, like, follow, field1, field2..., field100, pagecomments, images

いいねとフォローは、クリックごとに増加するカウンターフィールドです。

今、私はCassandra次の方法でこれを設計することを考えています:

**TYPE A** page_table { 
    page_id, 
    title, 
    content, 
    like, 
    follow,
    posted_by,
    datetime,
    image1,
    image2,
    field1,
    field2..., 
    field100
}

page_comments {
    commentid, 
    page_id,text, 
    comment_like, 
    posted_by,
    datetime
}

**TYPE B** page_table {
    page_id, 
    title, 
    content,
    posted_by,
    datetime,
    image1,
    image2,
    field1,
    field2...,
    field100
}

page_like {
    page_id, 
    like
}
page_follow {
    page_id, 
    follow
}

page_comments {
    commentid, 
    page_id,
    text, 
    comment_like, 
    posted_by,
    datetime
}

どちらが最善の方法ですか?Cassandraまたは、これに適したデータベース設計を提案してください。CQL

4

1 に答える 1

0

いくつかの noSQL パターンについて読みたいと思うかもしれません

https://github.com/deanhiller/playorm/wiki/Patterns-Page

ページからすべてのコメントを取得しようとしている場合、コメントへの FK が表示されませんpage_table。FK はライトをもたらすために必要です。そのページにはパターンがありません。インデックスを持つのではなく、頻繁に行に埋め込まれているtoManyものを追加します。nosqlだからあなたはこれをたくさんのデザインに持っています。

page_table {  
    page_id, 
    title, 
    content, 
    like, 
    follow,
    posted_by,
    datetime,
    image1,
    image2, 
    fktocomment1, 
    fktocomment2, 
    fktocomment3 
}

一般的に行われるのは、fktocomment1「コメント」という単語が前に付けられているため、コメント部分を取り除き、最後に fk を使用することですべての fk を見つけることができます (値はありません!)。ググることができる合成名パターンです。

編集:パターン ページを編集/追加したパターンは非常に一般的で、以前は追加しようとは考えていませんでした。

于 2013-02-03T01:20:47.830 に答える