2013-10-30 2 views
0

테이블이 user이고 테이블이 post 인 경우 사용자가 오늘 게시 한 게시물 수를 계산하려면 두 가지 방법을 생각해 볼 수 있습니다.데이터베이스에서 카운팅 레코드와 카운터 변수 사이의 차이

첫 번째는 user에 속한 post 개의 레코드가 몇 개 생성되었는지 계산하는 SQL 쿼리를 보내는 것입니다.

두 번째는 세 개의 열이 해당하는 count 테이블을하는 것입니다 : 사용자가 게시물을 할 때, num_posts이 증가되도록 date 오늘날, 또는 단순히 1로 설정하면, user_id, num_postsdate을 때 우리는 게시물을 계산할 필요가 있습니다. 오늘 날짜가 오늘 인 경우 num_posts을 간단히 검색해야합니다.

두 방법 모두 실용적이지만 저는 DB가 어떻게 작동하는지에 대한 많은 지식이없는 DB 전문가는 아닙니다. 백엔드, 그래서 나는 어떤 경로를 취해야할지 모르겠다. (비록 대부분의 사람들이 처음 구현되는 것 같지만?). 누구든지 그것에 대해 나에게 어떤 생각을 줄 수 있습니까?

답변

2

시스템의 사용자 및 게시물 수가 너무 많지 않으면 첫 번째 문제가 없어야합니다. 그러나 사용자 및 게시물이 너무 많으면 두 번째 옵션을 고려하는 것이 더 빠를 수 있습니다. 단점은 데이터를 저장하는 데 더 많은 공간이 필요하다는 것입니다.

3

두 번째 대안은 중복 적입니다. 처음 성능 문제가있는 경우를 제외하고는 권장하지 않습니다. (중복은 불일치를 야기 할 수 있으므로 rdbms 세계에서는 좋지 않습니다.)

0

게시물 개수에 대한 별도의 테이블을 갖는 것은 불필요합니다. 이 테이블을 쿼리하거나 게시 테이블을 쿼리하여 동일한 정보를 얻을 수 있습니다. 성능상의 이유로 필사적으로 필요하지 않다면 이것을 피하십시오.