在现代社会,人脉是宝贵的资源,无论是个人还是企业,都需要有效地管理联系人列表,以维护良好的人际关系,拓展商机。联系人列表数据库是构建高效人脉管理系统的重要基础,它可以帮助您轻松存储、管理和分析联系人信息。为了帮助您更好地理解联系人列表数据库的设计,本文将提供一个示例,介绍一个简单的 美国数据 联系人列表数据库的结构和表设计。
数据库名称:contacts_db
表一:联系人表(contacts)
字段名 | 数据类型 | 约束 | 描述 |
---|---|---|---|
contact_id | INT | PRIMARY KEY | 联系人 ID,自增主键 |
first_name | VARCHAR(50) | NOT NULL | 联系人名 |
last_name | VARCHAR(50) | NOT NULL | 联系人姓氏 |
VARCHAR(100) | UNIQUE | 联系人电子邮件地址 | |
phone_number | VARCHAR(20) | UNIQUE | 联系人电话号码 |
company | VARCHAR(100) | NULL | 联系人所在公司 |
job_title | VARCHAR(100) | NULL | 联系人职位 |
address | VARCHAR(255) | NULL | 联系人地址 |
birthday | DATE | NULL | 联系人出生日期 |
表二:分组表(groups)
字段名 | 数据类型 | 约束 | 描述 |
---|---|---|---|
group_id | INT | PRIMARY KEY | 分组 ID,自增主键 |
group_name | VARCHAR(50) | NOT NULL | 分组名称 |
表三:联系人分组表(contact_groups)
字段名 | 数据类型 | 约束 | 描述 |
---|---|---|---|
contact_group_id | INT | PRIMARY KEY | 联系人分组 ID,自增主键 |
contact_id | INT | NOT NULL | 联系人 ID,外键引用 contacts 表的 contact_id |
group_id | INT | NOT NULL | 分组 ID,外键引用 groups 表的 group_id |
表四:标签表(tags)
字段名 | 数据类型 | 约束 | 描述 |
---|---|---|---|
tag_id | INT | PRIMARY KEY | 标签 ID,自增主键 |
tag_name | VARCHAR(50) | NOT NULL | 标签名称 |
表五:联系人标签表(contact_tags)
字段名 | 数据类型 | 约束 | 描述 |
---|---|---|---|
contact_tag_id | INT | PRIMARY KEY | 联系 中国地名数据库综合指南 人标签 ID,自增主键 |
contact_id | INT | NOT NULL | 联系人 ID,外键引用 contacts 表的 contact_id |
tag_id | INT | NOT NULL | 标签 ID,外键引用 tags 表的 tag_id |
表六:备注表(notes)
字段名 | 数据类型 | 约束 | 描述 |
---|---|---|---|
note_id | INT | PRIMARY KEY | 备注 ID,自增主键 |
contact_id | INT | NOT NULL | 联系人 ID,外键引用 contacts 表的 contact_id |
note | TEXT | NULL | 备注内容 |
create_time | DATETIME | NOT NULL | 备注创建时间 |
数据库关系
- 一个联系人可以属于多个分组。
- 一个联系人可以拥有多个标签。
- 一个联系人可以有多个备注。
示例数据
SQL
-- 创建 contacts 表
CREATE TABLE contacts (
contact_id INT PRIMARY KEY AUTO_INCREMENT,
first_name VARCHAR(50) NOT NULL,
last_name VARCHAR(50) NOT NULL,
email VARCHAR(100) UNIQUE NOT NULL,
phone_number VARCHAR(20) UNIQUE NOT NULL,
company VARCHAR(100) NULL,
job_title VARCHAR(100) NULL,
address VARCHAR(255) NULL,
birthday DATE NULL
);
-- 创建 groups 表
CREATE TABLE groups (
group_id INT PRIMARY KEY AUTO_INCREMENT,
group_name VARCHAR(50) NOT NULL
);
-- 创建 contact_groups 表
CREATE TABLE contact_groups (
contact_group_id INT PRIMARY KEY AUTO_INCREMENT,
contact_id INT NOT NULL,
group_id INT NOT NULL,
FOREIGN KEY (contact_id) REFERENCES contacts(contact_id),
FOREIGN KEY (group_id) REFERENCES groups(group_id)
)