2012-07-12 5 views
1

카산드라에 코멘트를 저장하는 좋은 방법을 찾고 있습니다. 누군가 내게 좋은 카산드라 데이터 모델을 제공하여 의견을 저장할 수 있습니까?카산드라 코멘트에 대한 코멘트

데이터 모델을 사용하면 phpcassa으로 이러한 주석의 특정 번호를 검색 할 수 있습니다.

내 아이디어 :

Comments = { 
    CommentId1:{ 
     CommentAuthor, 
     Content, 
     Timestamp 
    }, 
    CommentId2:{ 
     CommentAuthor, 
     Content, 
     Timestamp 
    } 
    ... 
} 

CommentsLine = { 
    EntryId1:{ 
     CommentId1: timestamp, 
     CommentId2: timestamp, 
     CommentId3: timestamp, 
     ... 
    } 
    ... 
} 

하지만 난이 더 좋은 방법입니다 확실하지 않다. 도와 줘서 고맙다.

답변

2

당신의 솔루션은 멋지지만 CF 주석 라인에 키를 저장하는 것이 더 좋을 수도 있습니다. 예를 들어, 주석을 주문할 수있는 타임 스탬프가 있어야합니다. 내 솔루션에서

CommentsLine = { 
    EntryId1:{ 
     timestamp: CommentId1 , 
     timestamp: CommentId2 , 
     timestamp: CommentId3 , 
     ... 
    } 
    ... 
} 
+0

당신이 열 저장을 통해 당신은 간단한 조각 게시물 테이블에서 그것을 얻을 수 정렬 된 의견 {배치하는 타임 스탬프} 원하는 경우 - {JSON과 같은 {메모의 작성자 사용자 ID} 및 기타 메타 데이터}>를 – MaX

+0

예 혹시. 나는 당신이 스키마를 알지 못한다. 그러나이 예제에서는 행키의 컬럼을 사용하여 코멘트를 정렬하는 것이 더 좋다. – sahid

+0

@sahid 그래,하지만 처음 5 개의 결과 만 얻고 또 다른 5 개의 결과를 얻으려면 어떻게해야합니까? – siannone

1

이 문제는 한 번 해결되었습니다. 여기 내가 어떻게이 문제를 해결 했나. 개별 ColumnFamily는 각 행이 주석 ID (내 ID는 {Parent Post ID} - {Comment author user ID} - {Comment Posted Timestamp})의 위치에 주석을 달고 작성자, 주석, 게시 된 항목을 포함하는 열을가집니다. 날짜 등

개별 형식을 사용하여 개별 열 패밀리에서 분리하여 배포 할 수 있습니다.

링크가 완료되면 {{작성자 타임 스탬프} -> {{댓글 작성자 사용자 ID} 및 기타 메타 데이터를 JSON으로 가질 수있는 열 이름 주석을 유지하여 부모님에게 각 댓글을 연결해야합니다. 이것은 당신이 좋아하는 것을 생각해야만하는 시나리오와 완전히 관련이 있습니다.)

생성 할 수있는 의견이 PHP에서 마이크로 시간으로 게시되고 이에 따라 cassandra에 삽입됩니다. 이 형식은 Cassandra가 주석에 링을 배포하고 게시물의 행이 최소한의 정보 만 포함하도록합니다.

주석을 다시로드하려면 열을 선택한 다음 Comments 열 패밀리에서 MultiGet 호출을 수행해야합니다.