如何编写一个高效的国税系统通讯录数据库?
来源:asp之家 发布时间:2009-11-07 18:53:00
为某国税局开发一综合 * ,需要建立一个庞大的国税系统通讯录数据库,从各省、市到每名具体工作人员,项目较多,该如何设计各表呢?
数据库的表设计要本着快捷高效、维护方便的原则,我们建议设计九个表,将单位部分和工作人员部分分开管理,然后再通过其它信息部分将两部分结合起来。
各表结构如下,供参考:
1、省(市)份表
create table province (
provid tinyint not null identity(1,1), --省(市)编号
provname varchar(20) not null, --省(市)名
constraint pk_province primary key clustered (provid)
)
2、城市表
create table city (
cityid smallint not null identity(1,1), --城市编号
cityname varchar(30) not null, --城市名
provid tinyint not null, --隶属省(市)编号
constraint pk_city primary key clustered (cityid)
)
索引:
create index city_provid on city(provid)
create index city_cityname on city(cityname)
3、单位级别
create table kind (
kindid tinyint not null identity(1,1), --级别编号
kindname varchar(40) not null, --级别名称
constraint pk_kind primary key clustered (kindid)
)
初始值:
insert into kind (kindname) values ('省局')
insert into kind (kindname) values ('市地局')
insert into kind (kindname) values ('区县局')
insert into kind (kindname) values ('基层分局')
4、国税局
create table ntax (
ntaxid int not null identity(1,1), --国税局编号
ntaxname varchar(60) not null, --国税局名称
postcode varchar(6) null, --邮政编码
cityid smallint not null, --城市编号
kindid tinyint not null, --国税局类别
county varchar(20) null, --地市名
constraint pk_ntax primary key clustered (ntaxid)
)
索引:
create index ntax_ntaxname on ntax(ntaxname)
create index ntax_cityid on ntax(cityid)
5、科室(分局、中心)
create table depart (
departid int not null identity(1,1), --科室(分局、中心)编号
departname varchar(20) not null, --科室(分局、中心)名称
ntaxid int not null, --国税局编号
ntaxcomp char(4) not null --(税务、事业、行政)编制
constraint pk_depart primary key clustered (departid)
)
索引:
create index depart_ntaxid on depart(ntaxid)
create index depart_ntaxcomp on depart(ntaxcomp)
6、工作人员
create table member (
memberid varchar(15) not null, --登录帐号
membername varchar(10) not null, --真实姓名
nickname varchar(10) not null, --昵称
password varchar(11) not null, --密码
birthday varchar(10) null, --生日
question varchar(20) not null, --提示问题
answer varchar(20) not null, --提示答案
address varchar(100) null, --通信地址
workunit varchar(100) null, --工作单位
telephone varchar(30) null, --办公电话
mobilenumber varchar(30) null, --手机号码
email varchar(50) null, --E-mail地址
QQ varchar(50) null, -- QQ号
other text null, --其它信息(备注)
loginnum smallint default 0, --来访次数
constraint pk_member primary key clustered (memberid)
)
索引:
create index member_membername on member(membername)
7、职务
create table mem_kind (
assignid tinyint not null identity(1,1), --职务编号
assignname varchar(30) not null, --职务名称
constraint pk_mem_kind primary key clustered (assignid)
)
初始值:
insert into mem_kind (assignname) values ('正处级')
insert into mem_kind (assignname) values ('副处级')
insert into mem_kind (assignname) values ('科级')
insert into mem_kind (assignname) values ('副科级')
insert into mem_kind (assignname) values ('科员')
insert into mem_kind (assignname) values ('办事员')
8、其它信息
create table mem_depart (
memberid varchar(15) not null, --人员编号
departid int not null, --科室(分局、中心)编号
assignid tinyint not null, --职务类别
register datetime not null default getdate(), --注册时间
constraint pk_mem_depart primary key clustered (memberid,departid)
)
索引:
create index mem_depart_memid on mem_depart(memberid)
create index mem_depart_departid on mem_depart(departid)
9、留言簿
create table message (
messageid int not null identity(1,1), --信息编号
memberid varchar(15) not null, --留言人员
targetid varchar(15) not null, --目标人员
message varchar(1000) null, --信息内容
addtime datetime not null default getdate(), --留言时间
looked bit not null default 0, --已经看过
constraint pk_message primary key clustered (messageid)
)
索引:
create index message_memberid on message(memberid)
create index message_targetid on message(targetid)
猜你喜欢
- 大家在用asp开发程序的时候,有时候会碰到以下的错误提示:Active Server Pages 错误 'ASP 0141'
- 首先介绍下简朝阳.现就职于阿里巴巴(中国)网络技术有限公司DBA Team运维部, 简朝阳是本次MYSQL技术征文大赛第三名得主(获奖文章:
- 昨天我的电影网站在生成内容静态页面的时候出了问题,提示下标越界,以前从来没有遇到过的,所以根本不知道是什么东西,于是就到处在网上找答案,但是
- 你可以通过自定义函数接口 (UDF)来添加函数。自定义函数被编译为目标文件,然后用CREATE FUNCTION 和DROP FUNCTIO
- 大大小小也搞过一些数据库设计,见过一些其他人的设计,看过些书,总结总结,经验谈。选表类型:大家都知道mysql的myisam表适合读操作大,
- 由于日期存在不同位数的月份或天数,出现参差不齐,既不美观也在日期比较时不好操作。如使用本涵数就会排列整齐:'================
- 无论安装何版本的mysql,在管理工具的服务中启动mysql服务时都会在中途报错。内容为:在 本地计算机 无法启动mysql服务 错误106
- <% On Error Resume Next Const uploadPath = "/uploads/"
- 关于这个话题,我也看到网上有其他方法来解决。 不过从性能和代码量上来看,我有更好的办法。 在这里和大家 分享。 原理其实很简单, 知识1、长
- 阻塞定义当来自应用程序的第一个连接控制锁而第二个连接需要相冲突的锁类型时,将发生阻塞。其结果是强制第二个连接等待,而在第一个连接上阻塞。不管
- 认知心理学家Donald A. Norman将人类的行动分解成七个阶段:1. 确定目标2. 确定意图3. 明确行动内容4. 执行5. 感知外
- 作者:Lachlan Hunt概要网络是不断的进化的. 新的和有创意的网站每天都在出现, 从各方面都在冲击着HTML的边界. HTML 4来
- 在asp中调用sql server的存储过程可以加快程序运行速度,本文介绍了asp使用存储过程的方法。1.调用存储过程的一般方法 先假设在s
- 在 PHP 中表示空的map或空数组都是以空数组形式,在转化为json数据时,会将空数组统一 json 序列化成 [],这样就存在
- 一、 软件介绍 DB2MYSQL是一个可以自动将ACCESS数据库文件转化为对应的SQL代码的软件。可广泛应用于ACCESS数据库转换为MY
- 一。存储过程的创建和使用1.创建程序包,并在程序中创建存储过程create or replace PACKAG
- 本次薯片会一改以往低调、沉稳之作风,先瑜伽团美女show上阵,再是以臭为首的吃喝团上阵,两轮下来大家情绪Hight到了极点,自然讨论的时候思
- 研究了几天Adodb.stream和XMLHTTP的应用,找了不少很有趣的教程,下面的代码是将一个远程的页面,图片地址保存到本地的实例。将代
- 列表UL或是OL中都有一个预设标记,这个标记可能是实点圆点,也可能是数字。在实际的应用中,我们需要去掉这个预设标记,但我们不清楚这个预设标记
- 假如你正在运行使用MySQL的Web应用程序,那么你把密码或者其他敏感信息保存在应用程序里的机会就很大。保护这些数据免受黑客或者窥探者的获取