OKAUEND / ffxiv_vtuber_archives

FFXIVでLiveをしているVtuberの過去アーカイブ一覧サイト
1 stars 0 forks source link

反映 - クエリパラメータからPrismaのWere文を作成する #162

Closed OKAUEND closed 1 year ago

OKAUEND commented 1 year ago

Issue / Ticket

作業カテゴリー

142

作業チケット

#151 取得したクエリパラメータより、TagsテーブルのWhere文を作成する

課題/何が起こったか

ユーザーが配信者を見つけるために、ユーザーが自分にあった、もしくは見たいニーズの配信を行っているVtuberを見つけたい

仮説/どうしてそうなったのか

プレイスタイル・PTプレイ・配信時間帯などのカテゴリーごとタグとしてVtuberの情報として紐付ける工程は完了した 次はPrismaのORMを使い、カテゴリー毎に選ばれたのはAND条件。 カテゴリー内のタグ情報がはそれぞれOR条件とする。 これは、カテゴリーそれぞれに対しては、ユーザーはカテゴリー内で選択したのを含むVtuberを見つけたい。 カテゴリー毎では、そのカテゴリーは必ず含まれているVtuberを見つけたいという思考になるため。

どういう作業を行ったか

Channelテーブルに対して、交差テーブルのTaggingテーブルをLeftJoinをし、検索をするようにする。

Next Point

変更画面のサンプル

参考資料

ブログで指定したタグ全てに紐付いた記事を検索する - この記事の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 }],
          },
        },
      },
    ],
  },
});