찾다

 >  Q&A  >  본문

redis - 기사와 같은 데이터베이스 테이블 디자인에 대한 몇 가지 질문(좋아요, 조회수, 댓글 수가 기사의 테이블에 저장되어야 하는지)

항상 가지고 있던 질문입니다
기사 테이블에서 기사 좋아요, 검색 기록, 댓글은 세 개의 독립적인 테이블입니다. 이 세 가지 수량은 기사 목록 데이터를 쿼리할 때 표시되어야 합니다.


두 가지 옵션:

  1. 기사 테이블에 3개의 수량 필드를 추가합니다. 좋아요(좋아요 취소)/댓글 달기(댓글 삭제)/조회할 때마다 이 필드가 업데이트됩니다. 특히 조회수가 필요합니다. 매번 업데이트되며 필드가 중복됩니다

  2. 매번 연관별 총 개수를 조회하기에는 너무 느립니다.
    캐시/검색엔진에 넣으면 매번 업데이트를 해야 하는거 아닌가요?

phpcn_u1582phpcn_u15822792일 전1431

모든 응답(2)나는 대답할 것이다

  • 高洛峰

    高洛峰2017-04-28 09:05:59

    댓글 테이블 수가 어느 정도 늘어나면 중복 필드를 추가해야 합니다. 유지해야 할 중복 필드가 몇 개 더 있지만 성능 향상은 분명합니다. 결국 데이터베이스가 압도되는 것을 원하는 사람은 없을 것입니다.

    그리고 좋아요 수, 댓글 수, 독서 수는 높은 실시간 성능을 요구하는 데이터가 아니므로 좋아요(좋아요 취소)/댓글(댓글 삭제)마다 이 필드를 업데이트할 필요가 없습니다. )/browse. 30분 또는 1시간마다 중복 필드를 업데이트하도록 예약된 스크립트를 작성할 수 있습니다.

    회신하다
    0
  • 黄舟

    黄舟2017-04-28 09:05:59

    하위 테이블의 디자인이 정확합니다. 데이터 양의 증가를 고려하면 무거운 테이블은 사용하기 쉽지 않습니다. 추후에 좋아요 등 추가적인 정보가 나올 것이라는 점을 고려하면 이는 더욱 필요하다.

    캐시를 권장하며 캐시는 실시간으로만 업데이트됩니다. 특정 지속성은 정기적으로 실행될 수 있습니다.

    회신하다
    0
  • 취소회신하다