用戶可自由增刪分組,一個聯繫人可屬於多個分組。
-- 聯繫人表
CREATE TABLE contacts (
id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(64) NOT NULL,
gender CHAR(1),
phone_office VARCHAR(32),
phone_mobile VARCHAR(32),
phone_home VARCHAR(32),
company VARCHAR(128),
title VARCHAR(64),
-- 其他字段
sort_order INT DEFAULT 0
);
-- 分組表
CREATE TABLE groups (
id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(64) NOT NULL,
remark VARCHAR(255),
sort_order INT DEFAULT 0
);
-- 中間表:聯繫人-分組多對多
CREATE TABLE contact_groups (
contact_id INT NOT NULL,
group_id INT NOT NULL,
PRIMARY KEY (contact_id, group_id),
FOREIGN KEY (contact_id) REFERENCES contacts(id) ON DELETE CASCADE,
FOREIGN KEY (group_id) REFERENCES groups(id) ON DELETE CASCADE
);
單機/U盤運行建議 **SQLite** 或 **Access (MDB)**,零配置、文件級攜帶;C# 配合 `System.Data.SQLite` 或 `OleDb` 操作。