设计一个支持三级分销、多等级分佣、团队奖励和自购返佣的系统,需要考虑到多个方面的数据存储和关系。以下是一个可能的数据库表结构设计方案:
1. 用户表(Users)存储用户的基本信息和分销关系。
CREATE TABLE Users ( user_id INT PRIMARY KEY AUTO_INCREMENT, username VARCHAR(255) NOT NULL, parent_id INT DEFAULT NULL, -- 上级用户ID,NULL表示没有上级 level INT DEFAULT 1, -- 用户等级:1级、2级、3级 created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP );2. 订单表(Orders)
存储订单信息,包括购买者和订单金额等。
CREATE TABLE Orders ( order_id INT PRIMARY KEY AUTO_INCREMENT, user_id INT, -- 购买者ID total_amount DECIMAL(10, 2), -- 订单总金额 created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, FOREIGN KEY (user_id) REFERENCES Users(user_id) );3. 佣金表(Commissions)
存储每个订单的佣金分配情况。
CREATE TABLE Commissions ( commission_id INT PRIMARY KEY AUTO_INCREMENT, order_id INT, user_id INT, -- 佣金接收者ID commission_amount DECIMAL(10, 2), -- 佣金金额 commission_type ENUM('self', 'level1', 'level2', 'level3', 'team'), -- 佣金类型 created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, FOREIGN KEY (order_id) REFERENCES Orders(order_id), FOREIGN KEY (user_id) REFERENCES Users(user_id) );4. 佣金配置表(CommissionSettings)
存储不同用户等级和销量段的佣金配置。
CREATE TABLE CommissionSettings ( setting_id INT PRIMARY KEY AUTO_INCREMENT, level INT, -- 用户等级 min_sales DECIMAL(10, 2), -- 最低销量 max_sales DECIMAL(10, 2), -- 最高销量 self_commission_rate DECIMAL(5, 2), -- 自购返佣比例 level1_commission_rate DECIMAL(5, 2), -- 一级分销佣金比例 level2_commission_rate DECIMAL(5, 2), -- 二级分销佣金比例 level3_commission_rate DECIMAL(5, 2), -- 三级分销佣金比例 team_commission_rate DECIMAL(5, 2) -- 团队奖励比例 );5. 团队表(Teams)
存储团队信息和团队成员关系。
CREATE TABLE Teams ( team_id INT PRIMARY KEY AUTO_INCREMENT, team_name VARCHAR(255) NOT NULL, leader_id INT, -- 团队领导ID created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, FOREIGN KEY (leader_id) REFERENCES Users(user_id) ); CREATE TABLE TeamMembers ( team_member_id INT PRIMARY KEY AUTO_INCREMENT, team_id INT, user_id INT, joined_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, FOREIGN KEY (team_id) REFERENCES Teams(team_id), FOREIGN KEY (user_id) REFERENCES Users(user_id) );6. 月度销量表(MonthlySales)
存储每个用户每月的销售情况,用于计算团队奖励。
CREATE TABLE MonthlySales ( sales_id INT PRIMARY KEY AUTO_INCREMENT, user_id INT, month_year VARCHAR(7), -- 格式为YYYY-MM total_sales DECIMAL(10, 2), -- 月度总销量 created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, FOREIGN KEY (user_id) REFERENCES Users(user_id) );业务逻辑
订单创建:
当一个用户下单时,创建一条Orders记录。根据用户的上级关系,计算并插入对应的Commissions记录。佣金计算:
自购返佣:根据CommissionSettings表中的配置,计算自购返佣金额,并插入Commissions表。分销佣金:根据用户的上级关系和CommissionSettings表中的配置,计算一级、二级和三级分销佣金,并插入Commissions表。团队奖励:每个月底根据MonthlySales表中的数据,计算团队奖励,并插入Commissions表。团队管理:
团队成员加入或离开时,更新TeamMembers表。团队领导变更时,更新Teams表。月度销量统计:
每个月底统计每个用户的月度销量,插入或更新MonthlySales表。示例数据插入假设有三个用户:A、B、C,A是B的上级,B是C的上级,A、B、C都在同一个团队中。
-- 插入用户 INSERT INTO Users (username, parent_id, level) VALUES ('A', NULL, 1); INSERT INTO Users (username, parent_id, level) VALUES ('B', 1, 2); INSERT INTO Users (username, parent_id, level) VALUES ('C', 2, 3); -- 插入团队 INSERT INTO Teams (team_name, leader_id) VALUES ('Team1', 1); INSERT INTO TeamMembers (team_id, user_id) VALUES (1, 1); INSERT INTO TeamMembers (team_id, user_id) VALUES (1, 2); INSERT INTO TeamMembers (team_id, user_id) VALUES (1, 3); -- 插入佣金配置 INSERT INTO CommissionSettings (level, min_sales, max_sales, self_commission_rate, level1_commission_rate, level2_commission_rate, level3_commission_rate, team_commission_rate) VALUES (1, 0, 1000, 0.05, 0.10, 0.05, 0.02, 0.03); INSERT INTO CommissionSettings (level, min_sales, max_sales, self_commission_rate, level1_commission_rate, level2_commission_rate, level3_commission_rate, team_commission_rate) VALUES (2, 1000, 5000, 0.07, 0.12, 0.06, 0.03, 0.04); INSERT INTO CommissionSettings (level, min_sales, max_sales, self_commission_rate, level1_commission_rate, level2_commission_rate, level3_commission_rate, team_commission_rate) VALUES (3, 5000, 10000, 0.10, 0.15, 0.08, 0.05, 0.05);
通过以上表结构和示例数据,可以实现一个支持三级分销、多等级分佣、团队奖励和自购返佣的系统。具体的业务逻辑和计算细节可以根据实际需求进行调整和扩展。
网友回复