对于个人简历系统数据库的设计,可以考虑以下实体和属性:

  1. 用户实体(User)
  • 用户ID(UserID)- 主键
  • 用户名(Username)
  • 密码(Password)
  • 姓名(Name)
  • 性别(Gender)
  • 出生日期(Birthdate)
  • 联系电话(Phone)
  • 邮箱(Email)
  • 地址(Address)
  1. 教育经历实体(Education)
  • 教育经历ID(EducationID)- 主键
  • 用户ID(UserID)- 外键
  • 学校名称(SchoolName)
  • 专业(Major)
  • 学历(Degree)
  • 入学时间(StartDate)
  • 毕业时间(EndDate)
  1. 工作经历实体(Experience)
  • 工作经历ID(ExperienceID)- 主键
  • 用户ID(UserID)- 外键
  • 公司名称(CompanyName)
  • 职位(Position)
  • 入职时间(StartDate)
  • 离职时间(EndDate)
  • 工作描述(Description)
  1. 项目经验实体(Project)
  • 项目ID(ProjectID)- 主键
  • 用户ID(UserID)- 外键
  • 项目名称(ProjectName)
  • 项目描述(Description)
  • 开始时间(StartDate)
  • 结束时间(EndDate)
  1. 技能实体(Skill)
  • 技能ID(SkillID)- 主键
  • 用户ID(UserID)- 外键
  • 技能名称(SkillName)
  • 技能描述(Description)

根据以上实体和属性,可以设计以下E-R图:

image.png

根据E-R图,可以转换为以下关系模式:

  1. 用户表(User)
  • UserID(varchar(20))- 主键
  • Username(varchar(20))
  • Password(varchar(20))
  • Name(varchar(20))
  • Gender(varchar(2))
  • Birthdate(date)
  • Phone(varchar(20))
  • Email(varchar(50))
  • Address(varchar(100))
  1. 教育经历表(Education)
  • EducationID(varchar(20))- 主键
  • UserID(varchar(20))- 外键
  • SchoolName(varchar(50))
  • Major(varchar(50))
  • Degree(varchar(20))
  • StartDate(date)
  • EndDate(date)
  1. 工作经历表(Experience)
  • ExperienceID(varchar(20))- 主键
  • UserID(varchar(20))- 外键
  • CompanyName(varchar(50))
  • Position(varchar(50))
  • StartDate(date)
  • EndDate(date)
  • Description(varchar(200))
  1. 项目经验表(Project)
  • ProjectID(varchar(20))- 主键
  • UserID(varchar(20))- 外键
  • ProjectName(varchar(50))
  • Description(varchar(200))
  • StartDate(date)
  • EndDate(date)
  1. 技能表(Skill)
  • SkillID(varchar(20))- 主键
  • UserID(varchar(20))- 外键
  • SkillName(varchar(50))
  • Description(varchar(200))

根据以上关系模式,可以创建相应的数据表,具体操作可以使用SQL代码实现。在创建数据表时,可以使用以下代码向数据表中导入事先准备好的数据:

INSERT INTO User (UserID, Username, Password, Name, Gender, Birthdate, Phone, Email, Address)
SELECT UserID, Username, Password, Name, Gender, Birthdate, Phone, Email, Address FROM [Sheet1$]

INSERT INTO Education (EducationID, UserID, SchoolName, Major, Degree, StartDate, EndDate)
SELECT EducationID, UserID, SchoolName, Major, Degree, StartDate, EndDate FROM [Sheet2$]

INSERT INTO Experience (ExperienceID, UserID, CompanyName, Position, StartDate, EndDate, Description)
SELECT ExperienceID, UserID, CompanyName, Position, StartDate, EndDate, Description FROM [Sheet3$]

INSERT INTO Project (ProjectID, UserID, ProjectName, Description, StartDate, EndDate)
SELECT ProjectID, UserID, ProjectName, Description, StartDate, EndDate FROM [Sheet4$]

INSERT INTO Skill (SkillID, UserID, SkillName, Description)
SELECT SkillID, UserID, SkillName, Description FROM [Sheet5$]

在创建数据表时,还需要设置主键、外键、唯一约束、默认值约束、检查约束和自动编号的标识列等,以维护数据的完整性。可以使用以下SQL代码实现:

-- 设置主键
ALTER TABLE User ADD CONSTRAINT PK_User PRIMARY KEY (UserID)
ALTER TABLE Education ADD CONSTRAINT PK_Education PRIMARY KEY (EducationID)
ALTER TABLE Experience ADD CONSTRAINT PK_Experience PRIMARY KEY (ExperienceID)
ALTER TABLE Project ADD CONSTRAINT PK_Project PRIMARY KEY (ProjectID)
ALTER TABLE Skill ADD CONSTRAINT PK_Skill PRIMARY KEY (SkillID)

-- 设置外键
ALTER TABLE Education ADD CONSTRAINT FK_Education_User FOREIGN KEY (UserID) REFERENCES User (UserID)
ALTER TABLE Experience ADD CONSTRAINT FK_Experience_User FOREIGN KEY (UserID) REFERENCES User (UserID)
ALTER TABLE Project ADD CONSTRAINT FK_Project_User FOREIGN KEY (UserID) REFERENCES User (UserID)
ALTER TABLE Skill ADD CONSTRAINT FK_Skill_User FOREIGN KEY (UserID) REFERENCES User (UserID)

-- 设置唯一约束
ALTER TABLE User ADD CONSTRAINT UK_User_Username UNIQUE (Username)
ALTER TABLE User ADD CONSTRAINT UK_User_Email UNIQUE (Email)

-- 设置默认值约束
ALTER TABLE Education ADD CONSTRAINT DF_Education_StartDate DEFAULT GETDATE() FOR StartDate

-- 设置检查约束
ALTER TABLE User ADD CONSTRAINT CK_User_Gender CHECK (Gender IN ('M', 'F'))
ALTER TABLE Education ADD CONSTRAINT CK_Education_Degree CHECK (Degree IN ('Bachelor', 'Master', 'PhD'))

-- 设置自动编号的标识列
ALTER TABLE User ADD UserID INT IDENTITY(1,1)

在设置完数据表的约束后,可以进行完整备份,备份设备为“DB_bakDevice”,具体操作可以使用SQL代码实现,如下所示:

BACKUP DATABASE DB_学号 TO DISK = 'DB_bakDevice' WITH INIT

接下来,可以使用DML语句完成系统运行涉及的相关增删改查操作。例如,可以使用以下SQL代码查询所有用户的信息:

SELECT * FROM User

可以使用以下SQL代码添加一条新的教育经历记录:

INSERT INTO Education (EducationID, UserID, SchoolName, Major, Degree, StartDate, EndDate)
VALUES ('E0001', 'U0001', '清华大学', '计算机科学与技术', 'Bachelor', '2010-09-01', '2014-06-30')

可以使用以下SQL代码更新一条用户记录的电话号码:

UPDATE User SET Phone = '13888888888' WHERE UserID = 'U0001'

可以使用以下SQL代码删除一条工作经历记录:

DELETE FROM Experience WHERE ExperienceID = 'E0001'

除了使用DML语句操作数据表外,还可以创建存储过程和触发器来实现特定的功能。例如,可以使用以下SQL代码创建一个存储过程,查询指定用户的所有信息:

CREATE PROCEDURE GetUserInfo
    @UserID varchar(20)
AS
BEGIN
    SELECT * FROM User WHERE UserID = @UserID
    SELECT * FROM Education WHERE UserID = @UserID
    SELECT * FROM Experience WHERE UserID = @UserID
    SELECT * FROM Project WHERE UserID = @UserID
    SELECT * FROM Skill WHERE UserID = @UserID
END

在JAVA代码中,可以使用以下代码调用该存储过程:

String sql = "{CALL GetUserInfo(?)}";
CallableStatement stmt = conn.prepareCall(sql);
stmt.setString(1, "U0001");
ResultSet rs = stmt.executeQuery();

除了存储过程外,还可以创建触发器来实现特定的功能。例如,可以使用以下SQL代码创建一个触发器,当新增一条教育经历记录时,自动更新用户的最高学历:

CREATE TRIGGER UpdateUserDegree
ON Education
AFTER INSERT
AS
BEGIN
    UPDATE User SET Degree = (SELECT MAX(Degree) FROM Education WHERE UserID = inserted.UserID)
    FROM User INNER JOIN inserted ON User.UserID = inserted.UserID
END

在程序运行过程中,新增一条教育经历记录后,可以使用以下SQL代码查询用户的最高学历是否已更新:

SELECT Degree FROM User WHERE UserID = 'U0001'

最后,为了保证数据库的安全性,可以创建SQL Server身份验证的登录名“SQLUser01”,密码为“abc@123”,默认数据库为自己创建的这个数据库。可以使用以下SQL代码实现:

CREATE LOGIN SQLUser01 WITH PASSWORD = 'abc@123', DEFAULT_DATABASE = DB_学号

然后,在本数据库中创建一个SQL Server身份验证的数据库用户账户“db_user01”,并将其映射到登录名“SQLUser01”。可以使用以下SQL代码实现:

CREATE USER db_user01 FOR LOGIN SQLUser01

接下来,创建自定义角色“role01”,并将数据库用户“db_user01”添加为该自定义角色的成员,然后为该角色授予相应的权限。可以使用以下SQL代码实现:

CREATE ROLE role01
EXEC sp_addrolemember 'role01', 'db_user01'
GRANT SELECT, INSERT, UPDATE, DELETE ON User TO role01
GRANT SELECT, INSERT, UPDATE, DELETE ON Education TO role01
GRANT SELECT, INSERT, UPDATE, DELETE ON Experience TO role01
GRANT SELECT, INSERT, UPDATE, DELETE ON Project TO role01
GRANT SELECT, INSERT, UPDATE, DELETE ON Skill TO role01

最后,可以从角色“role1”收回部分权限,以进一步保证数据库的安全性。可以使用以下SQL代码实现:

DENY DELETE ON User TO role01
DENY DELETE ON Education TO role01
DENY DELETE ON Experience TO role01
DENY DELETE ON Project TO role01
DENY DELETE ON Skill TO role01
``
请根据你在JAVA课程中拟定的软件题目完成相应的数据库设计具体要求如下: Java中的题目使个人简历系统1 收集与整理数据收集足够数量5条以上的数据并输入到excel工作表中。注意各数据之间的关系。例如对于学生管理系统数据库而言学生实体的班级编号在班级实体中必须存在课程实体的专业编号在专业实体中必须存在。2 设计数据库1数据库的概念结构设计:分析各个实体的数据特征确定各个实体的

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

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