Closed OKAUEND closed 1 year ago
#151 取得したクエリパラメータより、TagsテーブルのWhere文を作成する
ユーザーが配信者を見つけるために、ユーザーが自分にあった、もしくは見たいニーズの配信を行っているVtuberを見つけたい
プレイスタイル・PTプレイ・配信時間帯などのカテゴリーごとタグとしてVtuberの情報として紐付ける工程は完了した 次はPrismaのORMを使い、カテゴリー毎に選ばれたのはAND条件。 カテゴリー内のタグ情報がはそれぞれOR条件とする。 これは、カテゴリーそれぞれに対しては、ユーザーはカテゴリー内で選択したのを含むVtuberを見つけたい。 カテゴリー毎では、そのカテゴリーは必ず含まれているVtuberを見つけたいという思考になるため。
Channelテーブルに対して、交差テーブルのTaggingテーブルをLeftJoinをし、検索をするようにする。
ブログで指定したタグ全てに紐付いた記事を検索する - この記事のSQLを参考にし、ChatGPTで生成
const test = await prisma.channel.findMany({ where: { AND: [ { tags: { some: { OR: [{ tag_id: 3 }, { tag_id: 4 }], }, }, }, { tags: { some: { OR: [{ tag_id: 13 }], }, }, }, ], }, });
Issue / Ticket
作業カテゴリー
142
作業チケット
#151 取得したクエリパラメータより、TagsテーブルのWhere文を作成する
課題/何が起こったか
ユーザーが配信者を見つけるために、ユーザーが自分にあった、もしくは見たいニーズの配信を行っているVtuberを見つけたい
仮説/どうしてそうなったのか
プレイスタイル・PTプレイ・配信時間帯などのカテゴリーごとタグとしてVtuberの情報として紐付ける工程は完了した 次はPrismaのORMを使い、カテゴリー毎に選ばれたのはAND条件。 カテゴリー内のタグ情報がはそれぞれOR条件とする。 これは、カテゴリーそれぞれに対しては、ユーザーはカテゴリー内で選択したのを含むVtuberを見つけたい。 カテゴリー毎では、そのカテゴリーは必ず含まれているVtuberを見つけたいという思考になるため。
どういう作業を行ったか
Channelテーブルに対して、交差テーブルのTaggingテーブルをLeftJoinをし、検索をするようにする。
Next Point
変更画面のサンプル
参考資料
ブログで指定したタグ全てに紐付いた記事を検索する - この記事のSQLを参考にし、ChatGPTで生成