Supabase + PostgreSQL RPC でアトミックなポイント経済システムを構築するスキル。 ## アーキテクチャ ``` ユーザー → API → atomic_add_points RPC → point_balances + point_transactions ↓ FOR UPDATE 行ロック(競合防止) ``` ## テーブル設計 ### point_balances(残高) ```sql CREATE TABLE point_balances ( user_id UUID PRIMARY KEY REFERENCES profiles(id), balance INTEGER NOT NULL DEFAULT 0, total_earned INTEGER NOT NULL DEFAULT 0, total_spent INTEGER NOT NULL DEFAULT 0, total_withdrawn INTEGER NOT NULL DEFAULT 0, updated_at TIMESTAMPTZ DEFAULT NOW() ); ``` ### point_transactions(履歴) ```sql CREATE TABLE point_transactions ( id UUID PRIMARY KEY DEFAULT gen_random_uuid(), user_id UUID NOT NULL, type TEXT NOT NULL, -- earn_sale, spend_purchase, deposit_stripe, withdraw_request, bonus amount INTEGER NOT NULL, balance_after INTEGER NOT NULL, reference_id TEXT, description TEXT, created_at TIMESTAMPTZ DEFAULT NOW() ); ``` ## アトミック RPC ```sql CREATE OR REPLACE FUNCTION atomic_add_points( p_user_id UUID, p_amount INTEGER, p_type TEXT, p_description TEXT, p_reference_id TEXT DEFAULT NULL ) RETURNS JSONB LANGUAGE plpgsql SECURITY DEFINER AS $$ DECLARE v_new_balance INTEGER; v_old RECORD; BEGIN -- UPSERT で残高レコード確保 INSERT INTO point_balances (user_id, balance) VALUES (p_user_id, 0) ON CONFLICT (user_id) DO NOTHING; -- FOR UPDATE で行ロック → 同時リクエストの競合防止 SELECT * INTO v_old FROM point_balances WHERE user_id = p_user_id FOR UPDATE; v_new_balance := v_old.balance + p_amount; IF v_new_balance < 0 THEN RETURN jsonb_build_object('success', false, 'error', 'insufficient_balance'); END IF; -- 残高 + カテゴリ別集計を同時更新 UPDATE point_balances SET balance = v_new_balance, ... WHERE user_id = p_user_id;
Philosophy
Skillora では、スキルを売る人も買う人も同じコミュニティにいます。 気に入った作者の新作やアップデートを追いかけたり、自分も出品して還元を受け取ったり。 好きなクリエイターをフォローして、発見と応援をひとつの場所で。
npx skillora install supabase-points-economy購入後にターミナルで実行してください。
正規購入者にはインストールコマンド再実行で最新版が配信されます。
継続的な価値を提供します
Skilloraのスキルはライセンス認証で保護されており、定期的にアップデートされます。スクリーンショットやコピーでは最新版を受け取れず、バグ修正や新機能の恩恵も得られません。正規購入者には常に最新バージョンが自動配信されます。
利用規約を確認 →—
評価なし
まだレビューがありません。最初のレビューを書いてみましょう。
Free
無料で導入共有する
SNS・リンクで広める
Supabase Points Economy — AIの使い方が変わるスキル
Supabaseポイント経済構築。アトミック残高管理・出金・売上配分。
https://skillora.jp/skills/supabase-points-economy
この作者の他のスキル