# “badge\_posts” 테이블을 사용한 배지 쿼리는 비공개 카테고리에서 부여되지 않습니다

**URL:** https://meta.discourse.org/t/badge-queries-using-badge-posts-table-arent-awarded-for-non-public-categories/142639
**Category:** Support
**Tags:** badges
**Created:** [2월 26, 2020, 4:00오전 UTC](https://meta.discourse.org/t/badge-queries-using-badge-posts-table-arent-awarded-for-non-public-categories/142639 "2020-02-26T04:00:01Z")
**Posts on this page:** 4
**Page:** 1

<div class="post-metadata">

### Author: ![Mark\_Schmucker](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/mark_schmucker/32/124810_2.png) [@Mark\_Schmucker](https://meta.discourse.org/u/Mark_Schmucker)
#### Post date: [2월 26, 2020, 4:00오전 UTC](https://meta.discourse.org/t/badge-queries-using-badge-posts-table-arent-awarded-for-non-public-categories/142639/1 "2020-02-26T04:00:01Z")

</div>

우리 사용자 중 한 명이 5개의 “좋은 답변” 배지(100개의 게시글을 좋아요하고 100개의 좋아요를 제공)를 가지고 있었습니다. 그런데 몇 가지 주제를 비공개 카테고리로 이동시킨 후, 이제 그 사용자는 배지가 3개만 있습니다. 이동된 주제에 대한 좋아요 제공 또는 수신이 배지 쿼리에 반영되지 않는 것 같으며, 이는 주제가 이동되었기 때문이거나 이제 비공개가 되었기 때문일 수 있습니다.

이 문제를 디버깅하는 과정에서 배지 쿼리를 [Data Explorer](https://meta.discourse.org/t/32566?silent=true)로 복사했습니다:

```
select p.user_id, p.id post_id, current_timestamp granted_at
from badge_posts p
where p.post_number > 1
and p.like_count >= 10

```

위 쿼리는 해당 사용자에게 3개의 결과만 반환하지만, 원래 5개여야 합니다. 이 쿼리가 “badge\_posts” 테이블을 사용한다는 것을 알게 되었습니다. [Data Explorer](https://meta.discourse.org/t/32566?silent=true)의 트리 뷰에서 badge\_posts 테이블을 찾을 수 없습니다. 그래서 "badge\_posts"를 "posts"로 변경했는데, 그랬더니 예상대로 5개가 반환되었습니다.

“badge\_posts” 테이블은 어디에서 오는 것이며, 배지 쿼리는 대신 “posts” 테이블을 사용해야 하는 것 아닙니까?

---

<div class="post-metadata">

### Author: ![simon](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/simon/32/339122_2.png) [@simon](https://meta.discourse.org/u/simon)
#### Post date: [2월 26, 2020, 5:04오전 UTC](https://meta.discourse.org/t/badge-queries-using-badge-posts-table-arent-awarded-for-non-public-categories/142639/2 "2020-02-26T05:04:48Z")

</div>

> [@Mark\_Schmucker](#):
>
> `badge_posts` 테이블은 어디에서 나오나요, 그리고 배지 쿼리는 `posts` 테이블을 사용해야 하는 것 아닌가요?

해당 테이블이 오랫동안 저를 혼란스럽게 했습니다. 이 테이블은 여기에서 정의되어 있습니다: [discourse/lib/badge\_posts\_view\_manager.rb at main · discourse/discourse · GitHub](https://github.com/discourse/discourse/blob/master/lib/badge_posts_view_manager.rb#L6). 이것은 [postgres 뷰](https://www.postgresqltutorial.com/postgresql-views/)입니다. 제 이해에 따르면, 뷰는 쿼리에 부여된 이름입니다.

`badge_posts` 뷰에 있는 게시물은 읽기 제한 카테고리에 있지 않은 가시적인 게시물입니다. 토픽을 비공개 카테고리로 이동했을 때, 해당 토픽의 게시물들이 `badge_posts` 뷰에서 제거되었습니다.

---

<div class="post-metadata">

### Author: ![Mark\_Schmucker](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/mark_schmucker/32/124810_2.png) [@Mark\_Schmucker](https://meta.discourse.org/u/Mark_Schmucker)
#### Post date: [2월 26, 2020, 5:13오전 UTC](https://meta.discourse.org/t/badge-queries-using-badge-posts-table-arent-awarded-for-non-public-categories/142639/3 "2020-02-26T05:13:14Z")

</div>

우리의 비공개 카테고리는 그렇게 비공개가 아닙니다. 정책을 수락하기만 하면 접근할 수 있거든요. 그래서 저는 해당 카테고리의 게시물을 포함하고 싶습니다. Nice Reply(그리고 Good Reply와 Great Reply)와 비슷한 모양의 사용자 지정 배지를 만들어야 할 것 같은데, badge\_posts 대신 posts를 사용해야 할 것 같습니다.

---

<div class="post-metadata">

### Author: ![system](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/system/32/443519_2.png) [@system](https://meta.discourse.org/u/system)
#### Post date: [3월 6, 2024, 12:48오후 UTC](https://meta.discourse.org/t/badge-queries-using-badge-posts-table-arent-awarded-for-non-public-categories/142639/5 "2024-03-06T12:48:23Z")

</div>

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.
