个人信息管理系统数据库设计

本示例将使用 SQL Server 创建一个简单的个人信息管理系统数据库,包括以下五个数据表:

  1. 个人信息表 (personal_info):存储个人基本信息,如姓名、性别、出生日期、身份证号、电话号码和电子邮件地址等。2. 教育经历表 (education):存储个人的教育经历信息,如学历、专业、学校、起止时间等。3. 工作经历表 (work_experience):存储个人的工作经历信息,如公司、职位、起止时间和工作描述等。4. 技能表 (skills):存储个人的技能信息,如技能名称和熟练程度等。5. 语言表 (languages):存储个人的语言信息,如语言名称和熟练程度等。

SQL Server 代码实现:

**1. 个人信息表 (personal_info)**sqlCREATE TABLE personal_info ( id INT PRIMARY KEY IDENTITY(1,1), name VARCHAR(50) NOT NULL, gender VARCHAR(10) NOT NULL, birthdate DATE NOT NULL, id_number VARCHAR(20) UNIQUE NOT NULL, phone VARCHAR(20) NOT NULL, email VARCHAR(50) NOT NULL);

  • id: 主键,自动编号,数据类型为 INT,标识列。* name: 姓名,数据类型为 VARCHAR(50),不能为空。* gender: 性别,数据类型为 VARCHAR(10),不能为空。* birthdate: 出生日期,数据类型为 DATE,不能为空。* id_number: 身份证号,数据类型为 VARCHAR(20),唯一约束,不能为空。* phone: 电话号码,数据类型为 VARCHAR(20),不能为空。* email: 电子邮件地址,数据类型为 VARCHAR(50),不能为空。

**2. 教育经历表 (education)**sqlCREATE TABLE education ( id INT PRIMARY KEY IDENTITY(1,1), personal_info_id INT NOT NULL, degree VARCHAR(50) NOT NULL, major VARCHAR(50) NOT NULL, school VARCHAR(50) NOT NULL, start_date DATE NOT NULL, end_date DATE NOT NULL, CONSTRAINT fk_personal_info_id FOREIGN KEY (personal_info_id) REFERENCES personal_info(id));

  • id: 主键,自动编号,数据类型为 INT,标识列。* personal_info_id: 外键,关联个人信息表,数据类型为 INT,不能为空。* degree: 学历,数据类型为 VARCHAR(50),不能为空。* major: 专业,数据类型为 VARCHAR(50),不能为空。* school: 学校,数据类型为 VARCHAR(50),不能为空。* start_date: 开始时间,数据类型为 DATE,不能为空。* end_date: 结束时间,数据类型为 DATE,不能为空。* fk_personal_info_id: 外键约束,关联个人信息表 (personal_info) 的 id 字段。

**3. 工作经历表 (work_experience)**sqlCREATE TABLE work_experience ( id INT PRIMARY KEY IDENTITY(1,1), personal_info_id INT NOT NULL, company VARCHAR(50) NOT NULL, position VARCHAR(50) NOT NULL, start_date DATE NOT NULL, end_date DATE NOT NULL, description VARCHAR(500) NOT NULL, CONSTRAINT fk_personal_info_id FOREIGN KEY (personal_info_id) REFERENCES personal_info(id));

  • id: 主键,自动编号,数据类型为 INT,标识列。* personal_info_id: 外键,关联个人信息表,数据类型为 INT,不能为空。* company: 公司,数据类型为 VARCHAR(50),不能为空。* position: 职位,数据类型为 VARCHAR(50),不能为空。* start_date: 开始时间,数据类型为 DATE,不能为空。* end_date: 结束时间,数据类型为 DATE,不能为空。* description: 工作描述,数据类型为 VARCHAR(500),不能为空。* fk_personal_info_id: 外键约束,关联个人信息表 (personal_info) 的 id 字段。

**4. 技能表 (skills)**sqlCREATE TABLE skills ( id INT PRIMARY KEY IDENTITY(1,1), personal_info_id INT NOT NULL, skill_name VARCHAR(50) NOT NULL, proficiency INT NOT NULL, CONSTRAINT chk_proficiency CHECK (proficiency BETWEEN 1 AND 5), CONSTRAINT fk_personal_info_id FOREIGN KEY (personal_info_id) REFERENCES personal_info(id));

  • id: 主键,自动编号,数据类型为 INT,标识列。* personal_info_id: 外键,关联个人信息表,数据类型为 INT,不能为空。* skill_name: 技能名称,数据类型为 VARCHAR(50),不能为空。* proficiency: 熟练程度,数据类型为 INT,不能为空,检查约束 (chk_proficiency) 确保熟练程度在 1 到 5 之间。* fk_personal_info_id: 外键约束,关联个人信息表 (personal_info) 的 id 字段。

**5. 语言表 (languages)**sqlCREATE TABLE languages ( id INT PRIMARY KEY IDENTITY(1,1), personal_info_id INT NOT NULL, language_name VARCHAR(50) NOT NULL, proficiency INT NOT NULL, CONSTRAINT chk_proficiency CHECK (proficiency BETWEEN 1 AND 5), CONSTRAINT fk_personal_info_id FOREIGN KEY (personal_info_id) REFERENCES personal_info(id));

  • id: 主键,自动编号,数据类型为 INT,标识列。* personal_info_id: 外键,关联个人信息表,数据类型为 INT,不能为空。* language_name: 语言名称,数据类型为 VARCHAR(50),不能为空。* proficiency: 熟练程度,数据类型为 INT,不能为空,检查约束 (chk_proficiency) 确保熟练程度在 1 到 5 之间。* fk_personal_info_id: 外键约束,关联个人信息表 (personal_info) 的 id 字段。

通过以上 SQL 代码,我们成功地创建了一个包含五个数据表的个人信息管理系统数据库,并使用 SQL 代码实现了主键、外键、唯一约束、默认值约束、检查约束和自动编号的标识列

SQL Server 数据库设计:个人信息管理系统

原文地址: https://www.cveoy.top/t/topic/fYs7 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录