数据库大设计,需要2008R2版本

包括数据库建立,视图,索引的创建命令,表中的数据增,删,改,查询的命令,存储过程的创建和使用命令

img

回答:主要你这也没有说明是哪个管理系统,那我就用我之前的那个人事管理系统吧,每个管理系统大体都差不多,到时候你按照你们自己的系统改一改字段进行;关于应用程序的设计方面,这个一般采用Java编写,前后端分离开发,当然,你们采用Win form进行设计也是可以的,就是需要考虑SQL注入问题,解决的话可以采用C#的Entityframework,一个类似mybatis的快速构建dao层的框架;上述要求中包括,基本数据库数据表的建立,索引,视图,完整性要求等,还有存储过程,下面这个脚本中都包括,就是需要改成你们自己的字段;最后这个只作为参考,在修改借鉴方面肯定也需要一定的功夫,加油学习。

create database EmployeeManage;

use EmployeeManage;

--Department表
create table Department(
    department_name varchar(50),
    employee_number varchar(50),
    constraint PK_department_name primary key(department_name)
);

--Duty表
create table Duty(
    duty_name varchar(50),
    department_name varchar(50),
    constraint PK_duty_name primary key(duty_name)
);

--Jobtitle表
create table Jobtitle(
    jobtitle_name varchar(50),
    constraint PK_jobtitle_name primary key(jobtitle_name)
);

--Employee表
create table Employee(
    employee_id varchar(50),
    employee_name varchar(50),
    department_name varchar(50),
    duties_name varchar(50),
    jobtitle_name varchar(50),
    constraint PK_employee_id primary key(employee_id)
);

--StudyExperience表
create table StudyExperience(
    employee_id varchar(50),
    employee_name varchar(50),
    study_time varchar(50),
    study_describtion varchar(50),
    constraint PK_study_experience primary key(employee_id, study_time)
);
--WorkExperience表
create table WorkExperience(
    employee_id varchar(50),
    start_time varchar(50),
    end_time varchar(50),
    company_name varchar(50),
    work_describtion varchar(500),
    constraint PK_work_experience primary key(employee_id, start_time, end_time)
);

--FamilyRelationship表
create table FamilyRelationship(
    employee_id varchar(50),
    employee_name varchar(50),
    relationship_name varchar(50),
    family_name varchar(50),
    constraint PK_family_relationship primary key(employee_id, relationship_name)
);

--AwardInfo表
create table AwardInfo(
    employee_id varchar(50),
    award_type varchar(50),
    award_time varchar(50),
    award_describtion varchar(500),
    constraint PK_award_info primary key(employee_id, award_time)
);

视图:
create view EmployeeView
as
select employee_id, employee_name, department_name, duties_name from Employee;


存储过程:
create procedure Proc_DepartmentEmployeeNumber
@Proc_DepartmentName varchar(50)
as
select COUNT(*) from Department group by department_name;

执行(使用)
exec Proc_DepartmentEmployeeNumber
@Proc_DepartmentName = '123';

触发器:(触发器的语句只能一条一条执行,如果加上go语句进行分隔的话,应该可以多条执行)
create trigger T_DML_AddDepartmentEmployeeNumber
on Employee
after insert
as begin
    update Department set employee_number = employee_number + 1
    where Department.department_name in (select department_name from inserted)
end;

create trigger T_DML_DecreaseDepartmentEmployeeNumber
on Employee
after delete
as begin
    update Department set employee_number = employee_number - 1
    where Department.department_name in (select department_name from deleted)
end;

create trigger T_DML_ChangeDepartmentEmployeeNumber
on Employee
after update
as begin
    update Department set employee_number = employee_number - 1
    where Department.department_name in (select department_name from deleted)
    
    update Department set employee_number = employee_number + 1
    where Department.department_name in (select department_name from inserted)
end;

这是C#版本的运行截图

img

项目下载,就给一个网盘链接啦,采用的是Win form+SQL Server设计,界面方面结合了一个别人写好的框架,里面有那个dll,我也挺就没看了,在数据库设计方面应该可以对你有一些帮助
链接:https://pan.baidu.com/s/1DrR7S9SuzgJsjXzOW8zd7Q
提取码:0925