實現類 QQ 群功能:用戶可加多群,群含多用戶,關係數據量大,如何設計表結構?
CREATE TABLE user_group (
group_id BIGINT NOT NULL,
user_id BIGINT NOT NULL,
nickname VARCHAR(64), -- 群名片
role TINYINT DEFAULT 0, -- 0成員 1管理 2群主
join_time DATETIME DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (group_id, user_id), -- 聯合主鍵,防重複加群
INDEX idx_user_group (user_id, group_id) -- 反向查詢加速
);
不要因「用戶×群」理論笛卡兒積而過度恐慌,**實際業務中活躍關係遠小於理論上限**,優先保證查詢性能與數據一致性。