42 lines
1.8 KiB
SQL
42 lines
1.8 KiB
SQL
-- 邀请分销:为每个被邀请人单独配置充值奖励比例(与 GORM 模型 aff_invite_relations 一致)
|
||
-- 若已使用应用启动时的 AutoMigrate,可跳过手工执行;本脚本供 DBA 审阅或离线部署使用。
|
||
|
||
-- ========== MySQL / MariaDB ==========
|
||
CREATE TABLE IF NOT EXISTS `aff_invite_relations` (
|
||
`id` bigint NOT NULL AUTO_INCREMENT,
|
||
`inviter_id` bigint NOT NULL,
|
||
`invitee_user_id` bigint NOT NULL,
|
||
`commission_ratio_bps` bigint NOT NULL DEFAULT 0 COMMENT '万分比,100=1%%,10000=100%%',
|
||
`created_at` bigint DEFAULT NULL,
|
||
`updated_at` bigint DEFAULT NULL,
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `idx_aff_inv_pair` (`inviter_id`,`invitee_user_id`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
||
|
||
-- ========== PostgreSQL ==========
|
||
-- CREATE TABLE IF NOT EXISTS aff_invite_relations (
|
||
-- id BIGSERIAL PRIMARY KEY,
|
||
-- inviter_id BIGINT NOT NULL,
|
||
-- invitee_user_id BIGINT NOT NULL,
|
||
-- commission_ratio_bps BIGINT NOT NULL DEFAULT 0,
|
||
-- created_at BIGINT,
|
||
-- updated_at BIGINT,
|
||
-- CONSTRAINT idx_aff_inv_pair UNIQUE (inviter_id, invitee_user_id)
|
||
-- );
|
||
|
||
-- ========== SQLite ==========
|
||
-- CREATE TABLE IF NOT EXISTS `aff_invite_relations` (
|
||
-- `id` integer PRIMARY KEY AUTOINCREMENT,
|
||
-- `inviter_id` integer NOT NULL,
|
||
-- `invitee_user_id` integer NOT NULL,
|
||
-- `commission_ratio_bps` integer NOT NULL DEFAULT 0,
|
||
-- `created_at` integer,
|
||
-- `updated_at` integer
|
||
-- );
|
||
-- CREATE UNIQUE INDEX IF NOT EXISTS `idx_aff_inv_pair` ON `aff_invite_relations` (`inviter_id`, `invitee_user_id`);
|
||
|
||
-- 可选:系统默认分销比例(与 options 表 key 一致,亦可仅在后台「运营设置」中配置)
|
||
-- INSERT INTO options (`key`, `value`) VALUES ('AffiliateDefaultCommissionBps', '0')
|
||
-- ON DUPLICATE KEY UPDATE `value` = `value`; -- MySQL
|
||
-- PostgreSQL: INSERT ... ON CONFLICT DO NOTHING;
|