SQL Server 数据库设计:个人信息管理系统
个人信息管理系统数据库设计
本示例将使用 SQL Server 创建一个简单的个人信息管理系统数据库,包括以下五个数据表:
- 个人信息表 (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 代码实现了主键、外键、唯一约束、默认值约束、检查约束和自动编号的标识列
原文地址: https://www.cveoy.top/t/topic/fYs7 著作权归作者所有。请勿转载和采集!