Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
ポイント管理システムの改善について
Search
pistaman
November 02, 2022
Programming
0
1.2k
ポイント管理システムの改善について
2022/10/13に行われたSTORESとMGReの共同勉強会で登壇した際の資料
https://hey.connpass.com/event/261576/
pistaman
November 02, 2022
Tweet
Share
Other Decks in Programming
See All in Programming
実はマルチモーダルだった。ブラウザの組み込みAI🧠でWebの未来を感じてみよう #jsfes #gemini
n0bisuke2
3
1.3k
Cell-Based Architecture
larchanjo
0
140
20251212 AI 時代的 Legacy Code 營救術 2025 WebConf
mouson
0
200
【Streamlit x Snowflake】データ基盤からアプリ開発・AI活用まで、すべてをSnowflake内で実現
ayumu_yamaguchi
1
120
ローカルLLMを⽤いてコード補完を⾏う VSCode拡張機能を作ってみた
nearme_tech
PRO
0
120
TestingOsaka6_Ozono
o3
0
170
Integrating WordPress and Symfony
alexandresalome
0
160
Rediscover the Console - SymfonyCon Amsterdam 2025
chalasr
2
180
AIコーディングエージェント(Gemini)
kondai24
0
240
組み合わせ爆発にのまれない - 責務分割 x テスト
halhorn
1
150
20251127_ぼっちのための懇親会対策会議
kokamoto01_metaps
2
450
Microservices rules: What good looks like
cer
PRO
0
1.5k
Featured
See All Featured
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
31
3k
How to Think Like a Performance Engineer
csswizardry
28
2.4k
Are puppies a ranking factor?
jonoalderson
0
2.3k
Raft: Consensus for Rubyists
vanstee
141
7.2k
Bioeconomy Workshop: Dr. Julius Ecuru, Opportunities for a Bioeconomy in West Africa
akademiya2063
PRO
0
26
Stewardship and Sustainability of Urban and Community Forests
pwiseman
0
67
How To Speak Unicorn (iThemes Webinar)
marktimemedia
1
340
How to Talk to Developers About Accessibility
jct
1
81
My Coaching Mixtape
mlcsv
0
7
The Hidden Cost of Media on the Web [PixelPalooza 2025]
tammyeverts
1
110
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
22k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.3k
Transcript
テクノロジー部門CRM本部 バックエンドエンジニア 西川輝 ポイント管理システムの改善について
自己紹介 2 • 西川輝 • バックエンドエンジニア • STORES 株式会社 ◦
EC(2019/04 ~ 2019/11) ◦ レジ(2019/11 ~ 2022/05) ◦ ブランドアプリ(2022/05 ~) • STORES チョットワカル
目次 3 1. STORES ブランドアプリ の概要 2. 機能追加による負債の蓄積 3. ポイント管理の仕組みの改善について
4. まとめ
STORES ブランドアプリ について
STORES ブランドアプリ の概要 5 2021年12月、ショップフォース株式会社がヘイ株式会社にジョイン。 2022年7月7日、既存サービスを「STORES ブランドアプリ」としてリブランディングしリリース。
STORES ブランドアプリ の概要 6 STORES ブランドアプリ でできること - 顧客管理・利用分析 -
会員属性 - 性別、年齢、誕生日など - ポイント数 - 来店状況 - POSレジ、ECサイト連携 - マーケティングオートメーション - Push通知配信 - クーポン機能
アプリ画面 7 購入時にスタンプやポイントを貯めることが可能
管理画面 8 アプリ登録を起点に会員情報を生成
管理画面 9 POSレジ連携により、購買データと の紐付けも可能
管理画面 10 曜日別・時間帯別の利用状況が店舗 ごとに把握可能
度重なる改修による負債化
STORES ブランドアプリ の機能 12 STORES ブランドアプリ でできること - 顧客管理・利用分析 -
会員属性 - 性別、年齢、誕生日など - ポイント数 - 来店状況 - POSレジ、ECサイト連携 - マーケティングオートメーション - Push通知配信 - クーポン機能
STORES ブランドアプリ の機能 13 STORES ブランドアプリ でできること - 顧客管理・利用分析 -
会員属性 - 性別、年齢、誕生日など - ポイント数-> チェックイン - 来店状況-> チェックイン - POSレジ、ECサイト連携-> チェックイン - マーケティングオートメーション - Push通知配信 - クーポン機能-> チェックイン
チェックイン = ユーザー起因のイベント情報の全て チェックインとは 14
チェックインとは 元々は... - 来店情報 - 来店日 - 利用店舗 - 獲得スタンプ数
- 諸説あり 15
チェックインとは 機能追加後... - 来店情報 - 来店日 - 利用店舗 - 獲得スタンプ数
- ポイントシステムの導入 new - ポイントの取得、利用、失効などの管理が必要に - イベントログの保存 new - アプリダウンロード - SNS共有 - POSレジ、ECサイト連携 new - 購入金額 - 購入商品ID 16
チェックインとは チェックインの課題点 - イベントログや外部連携情報などが追加されたことにより、分析クエリが複雑化 - パフォーマンス悪化 - データ量も増大 - 各カラムの状態によってデータの意味が変わる
- キャッチアップコストが高い - 知らずに改修すると分析結果が変わってしまう - ポイントの履歴が追えない - チェックインテーブルにはポイント取得履歴しか残っていない 17
チェックインとは チェックインの課題点 - イベントログや外部連携情報などが追加されたことにより、検索条件が複雑化 - パフォーマンス悪化 - データ量も増大 - 各カラムの状態によってデータの意味が変わる
- キャッチアップコストが高い - 知らずに改修すると分析結果が変わってしまう - ポイントの履歴が追えない - チェックインテーブルにはポイント取得履歴しか残っていない 18
ポイントの履歴が追えない
ポイントの履歴が追えない 20 - ポイントの履歴とは - 取得 -> 購入、来店時のポイント付与 - 利用
-> クーポン利用時に1ポイント1円等で会計から割引 - 失効 -> 退会、期限切れ - チェックインテーブルにはポイント取得情報しか残っていない - アプリケーション上で複数テーブルの情報を組み合わせて履歴を算出 - 退会の場合は物理削除しているため履歴が残らない
ポイントの履歴が追えない 21 日付 ポイント 2022-10-01 14:00 5pt 2022-10-02 16:00 10pt
checkins(取得) 日付 ポイント 2022-10-09 18:00 10pt .. .. coupons(利用) 有効期間 7 .. shop_settings(失効)
ポイントの履歴が追えない 22 日付 ポイント 失効期限 2022-10-01 14:00 +5pt(取得) 2022-10-09 00:00
2022-10-02 16:00 +10pt(取得) 2022-10-10 00:00 2022-10-09 00:00 -5pt(失効) - 2022-10-09 18:00 -10pt(利用) - 日付 ポイント 2022-10-01 14:00 5pt 2022-10-02 16:00 10pt checkins(取得) 日付 ポイント 2022-10-09 18:00 10pt .. .. coupons(利用) 有効期間 7 .. shop_settings(失効) アプリケーション側で全データをソートして計算
ポイント管理の仕組みを改善
ポイント管理の仕組みを改善 24 - ポイント履歴用のテーブルを作成 - アプリケーションで作っていたデータをそのままDBへ - 取得、利用、失効イベントごとにレコードを追加 日付 ポイント
失効期限 2022-10-01 14:00 +5pt(取得) 2022-10-09 00:00 2022-10-02 16:00 +10pt(取得) 2022-10-10 00:00 2022-10-09 00:00 -5pt(失効) - 2022-10-09 18:00 -10pt(利用) - point_transactions
ポイント管理の仕組みを改善 25 改善の結果 - ポイントの履歴が残るように - パフォーマンスが向上 - DB側で有効ポイントの計算が可能に -
チェックインからポイントに関するユースケースを剥がせた - 責務が明確に - 可読性が向上
まとめ 26 - 目的の違うものを一つにまとめない - 機能追加をする際は立ち止まって考えてみる - アプリケーションの設計でもDB設計でも同じ - データ量を意識する
- 今後どのようなペースで増加するのか - マスターデータなのかトランザクションデータなのか - update より insert - 履歴が残らなくて問題ないか - 競合が発生しないか
27