如何编写一个高效的国税系统通讯录数据库?

来源: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)

标签:国税,数据库,通讯录
0
投稿

猜你喜欢

  • django实现同一个ip十分钟内只能注册一次的实例

    2021-03-07 03:13:37
  • python如何实现质数求和

    2023-03-02 20:17:24
  • cordova+vue+webapp使用html5获取地理位置的方法

    2024-04-27 16:00:05
  • 教你用eclipse连接mysql数据库

    2024-01-19 23:30:41
  • 使用Filter实现信息的二次检索

    2007-10-08 19:19:00
  • python通过pillow识别动态验证码的示例代码

    2023-08-27 02:29:21
  • 使用遗传算法求二元函数的最小值

    2022-07-29 09:13:37
  • Python中eval带来的潜在风险代码分析

    2023-05-24 03:29:03
  • Python处理文本数据的方法详解

    2023-08-18 01:57:30
  • asp日期函数运用--生成简单的日历

    2008-08-15 13:47:00
  • JS如何实现在弹出窗口中加载页面

    2024-04-29 14:07:53
  • 基于Linux系统中python matplotlib画图的中文显示问题的解决方法

    2022-05-22 01:34:28
  • 用Python手把手教你实现2048小游戏

    2023-02-22 23:27:57
  • 《JavaScript语言精粹》

    2009-04-03 11:27:00
  • 在Django中Pyecharts生成图表实现

    2023-07-27 08:16:32
  • Mootools 1.2教程(8)——输入过滤第一部分(数字)

    2008-11-27 13:01:00
  • 通过yum方式安装mySql数据库的全过程

    2024-01-13 11:46:43
  • anaconda jupyter不能导入安装的lightgbm解决方案

    2021-09-15 19:24:45
  • python实现一个简单的udp通信的示例代码

    2023-07-23 16:08:43
  • Pytorch实现神经网络的分类方式

    2021-02-26 05:20:47
  • asp之家 网络编程 m.aspxhome.com