設計會員積分等級制度資料表

cnyjh發表於2024-07-27

要設計一個資料庫來處理會員、團體以及積分等級制度,可以採用以下步驟和資料表結構:

  1. 會員表(Members)

    • member_id:會員ID(主鍵)
    • name:姓名
    • email:電子郵件
    • 其他個人資訊欄位(如:電話、地址等)
  2. 團體表(Groups)

    • group_id:團體ID(主鍵)
    • group_name:團體名稱
    • description:團體描述
  3. 會員團體關聯表(Member_Group_Association)

    • member_id:會員ID(外來鍵,關聯會員表)
    • group_id:團體ID(外來鍵,關聯團體表)
    • join_date:加入日期
    • status:狀態(如:活躍、不活躍等)
  4. 積分等級表(Points_Levels)

    • group_id:團體ID(外來鍵,關聯團體表)
    • level:等級
    • points_required:達到該等級所需的積分
  5. 會員積分表(Member_Points)

    • member_id:會員ID(外來鍵,關聯會員表)
    • group_id:團體ID(外來鍵,關聯團體表)
    • current_points:當前積分
    • level:當前等級(外來鍵,關聯積分等級表)

資料庫設計步驟:

  1. 建立會員表

    CREATE TABLE Members (
        member_id INT AUTO_INCREMENT PRIMARY KEY,
        name VARCHAR(255),
        email VARCHAR(255)
    );
    
  2. 建立團體表

    CREATE TABLE Groups (
        group_id INT AUTO_INCREMENT PRIMARY KEY,
        group_name VARCHAR(255),
        description TEXT
    );
    
  3. 建立會員團體關聯表

    CREATE TABLE Member_Group_Association (
        member_id INT,
        group_id INT,
        join_date DATE,
        status VARCHAR(50),
        PRIMARY KEY (member_id, group_id),
        FOREIGN KEY (member_id) REFERENCES Members(member_id),
        FOREIGN KEY (group_id) REFERENCES Groups(group_id)
    );
    
  4. 建立積分等級表

    CREATE TABLE Points_Levels (
        group_id INT,
        level INT,
        points_required INT,
        PRIMARY KEY (group_id, level),
        FOREIGN KEY (group_id) REFERENCES Groups(group_id)
    );
    
  5. 建立會員積分表

    CREATE TABLE Member_Points (
        member_id INT,
        group_id INT,
        current_points INT,
        level INT,
        PRIMARY KEY (member_id, group_id),
        FOREIGN KEY (member_id) REFERENCES Members(member_id),
        FOREIGN KEY (group_id) REFERENCES Groups(group_id),
        FOREIGN KEY (level) REFERENCES Points_Levels(level)
    );
    

功能實現:

  • 新增會員

    INSERT INTO Members (name, email) VALUES ('張三', 'zhangsan@example.com');
    
  • 新增團體

    INSERT INTO Groups (group_name, description) VALUES ('籃球俱樂部', '籃球愛好者聚集地');
    
  • 會員加入團體

    INSERT INTO Member_Group_Association (member_id, group_id, join_date, status) VALUES (1, 1, CURDATE(), '活躍');
    
  • 設定積分等級

    INSERT INTO Points_Levels (group_id, level, points_required) VALUES (1, 1, 100);
    
  • 更新會員積分

    INSERT INTO Member_Points (member_id, group_id, current_points, level) VALUES (1, 1, 150, 1);
    

透過這樣的設計,可以靈活地管理會員、團體以及積分等級制度,便於未來的新增、修改和查詢操作。

相關文章