OA 办公系统 模块设计

--连接主数据库
use Master
go --如果数据库simpleoa 存在,则先删除simpleoa。
if exists (select * from sysdatabases where name='simpleoa') 
drop database  simpleoa 
go--创建simpleoa数据库
create database simpleoa
go--
use simpleoa
go--创建用户表
create table [dbo].[User]
([UserID]		int		Identity(1,1) not null,--用户ID[UserLoginName]	nvarchar(20)	not null,		--用户登录名[UserName]	nvarchar(20)	not null,		--用户姓名[UserPassword]	nvarchar(20)	not null,		--用户密码[UserRegister]	nvarchar(20)	default getdate(),	--用户注册时间[UserUp]		bit		default 'true',	--是否需要上交[UserInfo]		nvarchar(200)	not null		--备注		--
)
alter table [dbo].[User] add constraint pk_user primary key(UserID);
go--创建部门表
create table [dbo].[Department]
([DepartmentID] 	[int] 		identity(1,1) 	not null,	--部门ID[DepartmentNum]	[nvarchar](20)	not null,		--部门编号[DepartmentName]	[nvarchar](20)	not null,		--部门名称[UserID]		[int]	             	not null,	--部门负责人ID[DepartmentInfo]	[nvarchar](200)	not null		--部门备注
)
alter table [dbo].[Department] add constraint pk_department primary key(DepartmentID);
go
--添加外键约束
--alter table Department add constraint dep_ref_use foreign key(UserID) references [dbo].[User](UserID)
--go--创建消息表
create table [dbo].[Message]
([MessageID]	[int]		identity(1,1) not null,	--消息ID[MessageSender]	[int]		not null,		--外键[MessageSubject]	[nvarchar](50)	default getdate(),	--消息主题[MessageBody]	[nvarchar](500)	not null,		--消息内容[MessageDataTime]	[datetime]		default getdate(),	--发送消息时间[MessageAttachment]	[bit]	default 'false'	--是否含有附件
)
alter table [dbo].[Message] add constraint pk_MessageID primary key (MessageID);
go
--消息接收人表:
create table [dbo].[Recipient]
([RecipientID]	[int]		identity(1,1) not null,	--接收人ID[MessageID]	[int]		not null,		--外键[RecipientRead]	[bit]		not null,		--是否读过[RecipientDel]	[bit]		not null,		--是否删除(显示在已删除消息栏)[RecipientReadTime]	[nvarchar](20)	default '尚未阅读',	--客户要求能看到接收人是否已经看过。[RecipientDelTime]	[nvarchar](20)	default '尚未删除',	--储存删除消息时间[RecipientAllDel]	[nvarchar](20)	default '尚未彻底删除'--不再显示在已删除消息栏
)
alter table [dbo].[Recipient] add constraint pk_recipient primary key(RecipientID);
go
--附件表
create table [dbo].[Attachment]
(AttachmentID	[int]		identity(1,1),	--附件IDAttachmentName	[nvarchar](50)	not null,		--附件名称AttachmentFilePath  [nvarchar](100)	not null,		--附件存放类型AttachmentType	[nvarchar](20)	not null,		--附件文件类型AttachmentDateTime	[datetime]		not null,	--附件上传时间AttachmentSource		[nvarchar](20)	not null,	--附件来源:消息、文章、上交?AttachmentSourceID	[int]		not null,	--附件来源ID
)
alter table [dbo].[Attachment] add constraint pk_Attachment primary key(AttachmentID)
go--每月上传时间表
create table [dbo].[Time]
(TimeID		[int]		identity(1,1),	--表时间IDTimeName	[nvarchar](20)	not null,		--时间变量名TimeContent	[datetime]		default getdate()	--时间变量值
)
alter table [dbo].[Time] add constraint pk_timeid primary key(TimeID)
go
代码
--连接主数据库
use Master
go

--如果数据库simpleoa 存在,则先删除simpleoa。
if exists (select * from sysdatabases where name='simpleoa')
drop database simpleoa
go

--创建simpleoa数据库
create database simpleoa
go

--
use simpleoa
go

--创建用户表
create table [dbo].[User]
(
[UserID] int Identity(1,1) not null,--用户ID
[UserLoginName] nvarchar(20) not null, --用户登录名
[UserName] nvarchar(20) not null, --用户姓名
[UserPassword] nvarchar(20) not null, --用户密码
[UserRegister] nvarchar(20) default getdate(), --用户注册时间
[UserUp] bit default 'true', --是否需要上交
[UserInfo] nvarchar(200) not null --备注 --
)
alter table [dbo].[User] add constraint pk_user primary key(UserID);
go


--创建部门表
create table [dbo].[Department]
(
[DepartmentID] [int] identity(1,1) not null, --部门ID
[DepartmentNum] [nvarchar](20) not null, --部门编号
[DepartmentName] [nvarchar](20) not null, --部门名称
[UserID] [int] not null, --部门负责人ID
[DepartmentInfo] [nvarchar](200) not null --部门备注
)
alter table [dbo].[Department] add constraint pk_department primary key(DepartmentID);
go
--添加外键约束
--
alter table Department add constraint dep_ref_use foreign key(UserID) references [dbo].[User](UserID)
--
go

--创建消息表
create table [dbo].[Message]
(
[MessageID] [int] identity(1,1) not null, --消息ID
[MessageSender] [int] not null, --外键
[MessageSubject] [nvarchar](50) default getdate(), --消息主题
[MessageBody] [nvarchar](500) not null, --消息内容
[MessageDataTime] [datetime] default getdate(), --发送消息时间
[MessageAttachment] [bit] default 'false' --是否含有附件
)
alter table [dbo].[Message] add constraint pk_MessageID primary key (MessageID);
go
--消息接收人表:
create table [dbo].[Recipient]
(
[RecipientID] [int] identity(1,1) not null, --接收人ID
[MessageID] [int] not null, --外键
[RecipientRead] [bit] not null, --是否读过
[RecipientDel] [bit] not null, --是否删除(显示在已删除消息栏)
[RecipientReadTime] [nvarchar](20) default '尚未阅读', --客户要求能看到接收人是否已经看过。
[RecipientDelTime] [nvarchar](20) default '尚未删除', --储存删除消息时间
[RecipientAllDel] [nvarchar](20) default '尚未彻底删除'--不再显示在已删除消息栏
)
alter table [dbo].[Recipient] add constraint pk_recipient primary key(RecipientID);
go
--附件表
create table [dbo].[Attachment]
(
AttachmentID
[int] identity(1,1), --附件ID
AttachmentName [nvarchar](50) not null, --附件名称
AttachmentFilePath [nvarchar](100) not null, --附件存放类型
AttachmentType [nvarchar](20) not null, --附件文件类型
AttachmentDateTime [datetime] not null, --附件上传时间
AttachmentSource [nvarchar](20) not null, --附件来源:消息、文章、上交?
AttachmentSourceID [int] not null, --附件来源ID
)
alter table [dbo].[Attachment] add constraint pk_Attachment primary key(AttachmentID)
go

--每月上传时间表
create table [dbo].[Time]
(
TimeID
[int] identity(1,1), --表时间ID
TimeName [nvarchar](20) not null, --时间变量名
TimeContent [datetime] default getdate() --时间变量值
)
alter table [dbo].[Time] add constraint pk_timeid primary key(TimeID)
go

 

最近偶然接到这样一个小项目,所以认真做一下。

1,消息模块设计:

 

     方案一:A给B,C,D发送信息,则在消息表中生成3条信息,接收人分别是B,C,D,并有Bool表示是否查看过。

     方案二:A给B,C,D发送信息,在表A中生成一条信息 ,表B中保存消息ID,和接收人分别是B,C,D的3条信息。(优点,当消息字数多时,能有效节省数据库空间)

     关于消息附件:设计表FuJianBiao ,每个附件记录引用消息表ID,可实现一条消息附带多条附件。

 

2,用户及权限模块设计:

    

 

用户角色表关联用户表和角色表,角色功能表关联角色表和功能表,都是多对多关系。每个用户有多个角色,每个角色也有多个用户;每个角色有多个功能,每个功能可以对应多个角色,由于该项目对权限要求明确而且很简单,所以不必这样设计用户权限系统。简单合适就好。

 

3,部门管理模块(管理员)设计

设计部门表

 

4,文档上传管理模块:

 

 

5,服务器文件管理模块:

 

 

 

转载于:https://www.cnblogs.com/netact/archive/2010/12/08/1900568.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/475803.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

通过java理解linux,Java继承的理解

继承:1)概念把多个类中相同的成员给提取出来定义到一个独立的类中。然后让这多个类和该独立的类产生一个关系,这多个类就具备了这些内容。这个关系叫继承。1.1)定义类时,通过“继承”一个现有的类,子类可以具有父类中的所有属性和…

Blend设计VSM

Silverlight中的ControlTemplate(1)-概念 Silverlight中的ControlTemplate(2)-概念 Silverlight中的ControlTemplate(3)-Blend设计ControlTemplate 上一篇我是通过Blend简单的演示如何修改ControlTemplate,这一篇关注VSM这个部分。 概念的东…

Pandas入门3(dtype+fillna+replace+rename+concat+join)

文章目录5. dtype 数据类型6. Missing data 缺失值6.1 查找缺失值 pd.isnull(),pd.notnull()6.2 填补缺失值 fillna(),replace()7. Renaming and Combining 重命名、合并7.1 Renaming 重命名7.2 Combining 合并数据learn from https://www.kaggle.com/l…

使用Delphi自带的TDockTabSet组件实现停靠功能(Jeremy North)

源地址:http://edn.embarcadero.com/article/33446 摘要: Instructions on how to use the TDockTabSet component to make advanced docking user interfaces. Introduction This article discusses the use of the TDockTabSet component that was originally int…

安装linux出现基础系统出错,Linux系统出错提示信息详解

ERROR PCI: cannot allocate(无法指派)这样的错误有许多,他们主要在启动系统时出现。他们有一个共同的起因:错误的电源管理行为。罪魁祸首是一个叫做ACPI的东西,即高级配置与电源接口。尽管他是一种电源管理标准,但在十几年的时间…

c语言基本数据类型常量,C语言基础学习基本数据类型-变量和常量

变量和常量什么是变量和常量?有些数据在程序运行前就预先设定,并在运行过程中不发生变化,称之为常量;有些数据在程序运行中可能发生变化或被赋值,称之为变量。使用变量前必须先声明一个变量。变量定义的语法是&#xf…

2011年影响3G手机发展四大因素

今晨闻讯,中电信明年3季度将推出iPhone。据称CDMA版本的iPhone推出,对中国电信意义重大,售价会高于WCDMA版。联通、移动、电信争夺“苹果血案”将继续上演。 截止2010年12月31日,中国3G用户不超过5000万。而工信部落实3G发展规划是…

Feature Engineering 特征工程 1. Baseline Model

文章目录1. 读取数据2. 处理label3. 添加特征4. 数据集切片5. 训练6. 预测learn from https://www.kaggle.com/learn/feature-engineering下一篇:Feature Engineering 特征工程 2. Categorical Encodings 1. 读取数据 预测任务:用户是否会下载APP&…

[转载] 湖北:星空团队——海燕计划

2010-7-1 来源:网易科技报道 本文网址:http://tech.163.com/10/0701/16/6AH5MA4S00094II8.html 1.项目及团队名称:星空团队——海燕计划 2.所在的赛区、所在的城市、所属高校:湖北赛区、武汉、华中科技大学 3.所处的公益领域&…

c语言静态存储和动态存储,为了便于计算机存储管理,C语言把保存所有变量的数据区,分成动态存储区和静态存储区,静态局部变量被存放在动态存储区。...

在向旅游者致欢迎词时,便于保存变量部变地陪的态度要热情,感情要真挚,内容要依情而异,语言要( )计算机存据区静山西省总的地势是()。储管成动储区储区存放储区提出到2020年要将我国旅游业建设成国民经济的战略性支柱产业和人民群众…

Feature Engineering 特征工程 3. Feature Generation

文章目录1. 组合特征2. 过去7天的数据3. 上一个相同类型的项目的时间4. 转换数值特征learn from https://www.kaggle.com/learn/feature-engineering上一篇:Feature Engineering 特征工程 2. Categorical Encodings 下一篇:Feature Engineering 特征工程…

C# 转繁体转简体转拼音,超级文本大转换

最近项目中遇到一个需求:把员工的中文姓名根据系统配置转换成中文简体或中文繁体。 原以为需要一个很大的一个简体和繁体相对应的字符对应表之类的东西。 后来发现,VB中就包含了这样的函数Strings.StrConv(this.TextBox1.Text.Trim(), VbStrConv.Traditi…

Feature Engineering 特征工程 4. Feature Selection

文章目录1. Univariate Feature Selection 单变量特征选择2. L1 regularization L1正则learn from https://www.kaggle.com/learn/feature-engineering上一篇:Feature Engineering 特征工程 3. Feature Generation 经过各种编码和特征生成后,通常会拥有…

分销平台使用手册

分销平台使用手册 分销商和供应商流程图 基本资料维护 1、分销联系人资料:包括:联系人;联系固话(手机号码);email;阿里旺旺(建议用已认证过的账号或商城店铺的阿里旺旺子账号&#x…

LeetCode 474. 一和零(01背包动态规划)

1. 题目 在计算机界中,我们总是追求用有限的资源获取最大的收益。 现在,假设你分别支配着 m 个 0 和 n 个 1。另外,还有一个仅包含 0 和 1 字符串的数组。 你的任务是使用给定的 m 个 0 和 n 个 1 ,找到能拼出存在于数组中的字…

android es管理工具,Android

Android ES文件管理器在文件管理器中,ES文件管理器的名气是比较大的,这款文件管理器也在近日进行了更新,更新后的ES文件管理器支持了更多网络存储空间,可以直接访问百度网盘、快盘、酷盘、微盘、box、sugarsync、dropbox和skydriv…

深入浅出InfoPath——让管理员来部署InfoPath表单

应用场景: 我们(乙方)在给客户提供基于InfoPath表单(尤其是包含托管代码的)的工作流解决方案的时候,常常需要客户(甲方)的SharePoint管理员来帮忙在安装SharePoint Server的服务器上…

LeetCode 932. 漂亮数组(分治递归/循环)

文章目录1. 题目2. 解题2.1 分治递归2.2 循环1. 题目 对于某些固定的 N&#xff0c;如果数组 A 是整数 1, 2, …, N 组成的排列&#xff0c;使得&#xff1a; 对于每个 i < j&#xff0c;都不存在 k 满足 i < k < j 使得 A[k] * 2 A[i] A[j]。 那么数组 A 是漂亮…

android 修改系统参数设置,2021-05-15 [RK3399][Android7.1] 调试笔记 ---显示参数动态设置接口...

系统环境&#xff1a;Platform: RK3399OS: Android 7.1Kernel: v4.4.83接口代码所在位置为&#xff1a;/frameworks/base/core/java/android/os/DisplayOutputManager.java如图&#xff1a;image.png1. 设置背光亮度public void setBrightness(int display, int brightness)设置…

Lucene.Net:关于索引的一些补充说明和总结

在前面的几篇关于lucene的文章中&#xff0c;我已经简要说明了如何利用lucene进行分词、索引和搜索。最近大部分时间耗在查资料上&#xff0c;看得比较多比较杂但是一贯的不够深入&#xff0c;还好多数都是不会影响编程实践的概念性的东西。有时候我自己也感觉到有心无力&#…