精华内容
下载资源
问答
  • 数据库设计说明

    2007-10-15 18:33:43
    数据库设计之前的设计说明格式
  • OA全套设计说明文档 OA概要设计说明+功能结果图+数据库设计说明书+详细设计说明书+需求说明
  • 小区物业管理系统的数据库设计和数据操作课程设计说明书。包含: 1、需求分析(含系统数据流图) 2、数据库概念结构设计(E-R图) 3、数据库逻辑结构设计 4、数据库物理结构设计 5、数据库实现(数据库建立SQL代码)...
  • 数据库设计说明书是对无锡迈尔斯通企业协同办公系统数据库设计的定义, 包括 本系统数据逻辑结构设计、数据字典以及运行环境、安全保密设计等。
  • 销售管理系统数据库设计说明

    千次阅读 2014-11-12 16:58:32
    本文档为北大青鸟ACCP软件工程师培训无锡培训中心 SI50B 班学员,第一学期毕业设计项目(《销售管理系统》)的数据库设计说明书,具体描述《销售管理系统》的数据库的设计,用于指导该系统在数据库存储各方面的内容...

    一、概述

    (一)、数据库设计文档概述

    本文档为北大青鸟ACCP软件工程师培训无锡培训中心 SI50B 班学员,第一学期毕业设计项目(《销售管理系统》)的数据库设计说明书,具体描述《销售管理系统》的数据库的设计,用于指导该系统在数据库存储各方面的内容,作为系统代码设计的基准文档。

    (二)、项目简要介绍

    项目目标软件系统名称:销售管理系统

    项目提出:自命题

    项目目标:利用计算机技术和信息技术实现销售管理的信息化,达到客户管理、合同管理、业务管理的规范有序、信息查阅快速准确、事务处理方便高效的要求,及时跟踪企业营销目标并适时进行结构化分析,为营销策略的修正以及新的营销策略的制定提供依据,通过对提高营销效率与降低营销成本的有效支持,从而改善企业宏观运营,提高企业的经济效益。

    系统模式:采用客户端/服务器模式

    系统开发环境:Visual Basic 6.0

    数据库管理系统:Microsoft SQL Server 2000

    软件开发者:北大青鸟无锡培训中心 SI50B 班学员王章圣

    软件应用范围:中小型企业(生产类)

    (三)、参考资料:

    A、北大青鸟第一学期教材;

    B、《基于软件开发项目的毕业设计》;

    (C、《销售管理系统》需求说明书)

    D、项目指导教师提供的毕业设计案例

    二、数据库外部设计

    (一)本数据库的应用软件及其与数据库的接口

    数据库软件:Microsoft SQL Server 2000

    系统要求建立的数据库名称:Sales

    使用该数据库的应用软件:销售管理系统

    该应用软件在Visual Basic 6.0编程环境下设计,采用Visual Basic 6.0基于Active Data Objects的数据库访问接口技术,建立与数据库的通讯连接、执行T-SQL。应用程序对数据库的操作,在通过执行T-SQL查询语句生成的结果集上执行。

    (二)数据库管理系统

    Microsoft® SQL Server? 2000 扩展了 Microsoft SQL Server 7.0 版的性能、可靠性、质量和易用性。Microsoft SQL Server 2000 增加了几种新的功能,由此成为大规模联机事务处理 (OLTP)、数据仓库和电子商务应用程序的优秀数据库平台。本数据库采取SQL Server 2000作为系统平台。以下是需要使用到SQL Server 2000的几个组件,包括:

    A、企业管理器:提供了数据管理和数据库操作的集成平台;

    B、查询分析器:T-SQL调试、优化、性能检测的工具;

    C、事件探查器:提供了对SQL Server执行操作的检测,并以T-SQL的形式记录;

    D、服务管理器:提供SQL Server停止、启动的控制工具;

    此外,还包括可能会使用到的数据导入和导出工具,为数据库提供数据的输入。

    三、数据库结构设计

    (一)表结构设计

    本数据库包括五类二十三张数据表,清单如下:

    类别

    表索引

    表名

    说明

    产品类

    表一

    Product

    存储公司所有产品目录

    表二

    product_type

    产品类类别:对表一的产品进行分类,并以其进行约束(字典库)

    表三

    Store

    产品出/入库:指检验合同的成品/退货产品,生产过程中的待检品、半成品以及材料等不纳入本系统

    表四

    store_reason

    出/入库理由:字典库

    表五

    product_ qulity

    产品质量:字典库

    表六

    product_Periods

    产品生产周期:主要用于合同评审(字典库)

    表七

    product_profit

    产品利润:通过表九与表一跟踪签约产品的利润实现情况

    客户类

    表八

    client

    客户表:一般指企业(即法人)

    合 同

    订单类

    表九

    Orders

    订单:即将合同细化的产品订单

    表十

    Contract

    合同:即以合同为单位的订单,也可称之为销售记录

    表十一

    contract_mode

    履行方式:字典库

    表十二

    contract_cancel

    已废止/取消的合同:在本库中起字典库作用

    表十三

    contract_talk

    合同评估:字典库

    表十四

    Suddenness

    合同意外处置:当不能完全按照合同的约定履行时,需在此登记,以便对合同与客户进行有效的管理

    表十五

    deal_mode

    意外处置方式:字典库

    表十六

    contract_profit

    合同利润:以合同为统计单位,并扣除各种折扣

    表十七

    contract_verify

    合同评审记录:主体部分

    表十八

    contract_perverify

    合同评审记录:产品细分清单

    营销目标与

    营销人员

    表十九

    Target

    销售目标:企业整体的营销目标,并按产品分解

    表二十

    Seller

    销售员:字典库

    表二一

    Seller_target

    个人目标分解:按产品将企业营销目标分解到业务员,以便跟踪个人业绩

    系统

    用户

    表二二

    userlist

    用户表:用于数据库的操作人员,业务员、客户可通过其口令登录查询

    表二三

    Operate_recorders

    用户操作记录表:写入操作员针对数据库的任何更改,建立责任制,同时也可以用作对操作员考核的原始依据

    以下是各数据表的具体结构及约束等说明:

    表一:Product(产品)

    字段

    类型(长度)

    约束

    说明

    产品编号

    product_id

    Char(10)

    主键

     

    产品名称

    product_name

    Char(20)

    非空

     

    产品大类

    product_type

    tinyint

    外键

    引用表二:type_id

    单位成本

    product_cost

    smallmoney

    根据用户类型决定可否查看

    备  注

    product_menu

    text

     

    相关表:订单、库存(出/入库)、销售计划、销售记录、产品利润、产品生产周期(编号)

    说 明:所有字段均由用户输入(选择产品大类,用户输入不存在的类别时提示添加。)

    (严格地讲,单位成本是变动的,最好单独成表并标注日期,以保存不同时期的“版本”,同时,还需建立报价表,此二表可考虑合并,为减轻项目负担,没有分开。)

    表二:product_type(产品大类)

    字段

    类型(长度)

    约束

    说明

    序号

    type_id

    tinyint

    标识列,主键

     

    产品大类

    type_name

    Char(20)

    非空

    将数据写入产品输入界面的组合框

    相关表:产品(对其实施约束)

    说 明:type_name由用户输入(一般通过修改产品时提示添加)

    表三:Store(产品出/入库)

    字段

    类型(长度)

    约束

    说明

    序  号

    store_id

    int

    标识列,主键

     

    产品编号

    product_id

    char(10)

    外键

    引用表一:product_id

    产品批号

    product_code

    char(10)

    非空

     

    登记方式

    enter _statu

    bit

    非空

    “1”为入存,“0”为出库

    登记数量

    chang_number

    int

    非空/正数

    可与前项合并,以正负区别,但考虑到统计需要,分开。

    质量等级

    store_qulity

    tinyint

    外键

    引用表四:qulity_type

    出/入库日期

    store_date

    datetime

    非空

     

    来源/去向

    store_frorto

    char(20)

    非空

     

    出/入库理由

    store_reason

    char(20)

    非空

    参引表 :reason_type

    库存数量

    store_number

    int

    非空/非负

     

    相关表:产品(产品编号)、产品质量

    说 明:除“序号”、“库存状态”、“库存数量”外均由用户输入(选择日期、理由、质量等级);reason_id不作为本表的外键,从而允许用户输入其他原因,并提示用户规范该字典库(“库存数量”在用户登记时由系统计算并自动填写)。

    表四:product_qulity(产品质量)

    字段

    类型(长度)

    约束

    说明

    序号

    qulity_id

    tinyint

    标识列,主键

    有关属性与产品类别表相似。

    质量等级

    qulity_type

    Char(6)

    非空

    相关表:产品出/入库、定单

    表五:store_reason(出/入库理由)

    字段

    类型(长度)

    约束

    说明

    序号

    reason_id

    tinyint

    标识列,主键

    相关表:产品出/入库

    有关属性与产品类别表相似。

    理由描述

    reason_type

    Char(20)

    非空

    表六:product_Periods(产品生产周期)

    字段

    类型(长度)

    约束

    说明

    序    号

    periods_id

    Tinyint

    标识列,主键

     

    产 品 编 号

    product_id

    Char(10)

    外键

     

    数    量

    product_number

    Int

    非空/正数

     

    一般生产周期

    periods

    smallint

    非空/正数

    以天计

    相关表:产品(编号)

    说 明:均由用户输入,所有在产品都必须在此登记,并作为在产的标志。

    表七:product_profit(产品利润)

    字段

    类型(长度)

    约束

    说明

    产品编号

    product_id

    Char(10)

    外键

    主键

    合同编号

    contract_id

    Char(10)

    外键

    利 润 额

    profit

    Money

     

    利 润 率

    profit_margin

    decimal

     

    相关表:产品(产品编号)、合同(合同编号)

    说 明:根据订单表作相应更新,由系统建立,便于统计。

    表八:client(客户)

    字段

    类型(长度)

    约束

    说明

    客户编号

    client_id

    Char(8)

    主键

     

    客户名

    client_name

    Char(30)

    非空

     

    联系人

    client_person

    Char(10)

    非空

    或称代表人

    联系方式

    client_tel

    Char(15)

    非空

     

    住址

    client_ad

    Varchar(50)

    非空

     

    相关表:合同(客户编号)(通过合同表与产品表建立间接联系,查看客户感兴趣的产品)

    说 明:全部由用户输入(客户编号可考虑由系统建立)

    表九:Orders(订单)

    字段

    类型(长度)

    约束

    说明

    合同编号

    product_id

    Char(10)

    外键

    主键

    产品编号

    contract_id

    Char(10)

    外键

    数  量

    sells_number

    int

    非空/正数

     

    质  量

    contract_ qulity

    tinyint

    外键

    引用表四:qulity_type

    单  价

    per_price

    smallmoney

    非空/正数

     

    相关表:产品(产品编号)、合同(合同编号)、产品质量

    说 明:均由用户输入(多数情况下,与合同表一同更新)

     

    表十:Contract(合同)

    字段

    类型(长度)

    约束

    说明

    合同编号

    contract_id

    Char(10)

    主键

     

    客户编号

    client_id

    Char(8)

    外键

     

    标的额

    sells_totall

    Money

    非空

    >0

    签约折扣

    sign_ discount

    Money

    非空

    非负/默认为“0”

    销售人员编号

    seller_id

    Char(8)

    非空

     

    订立日期

    sign_date

    datetime

    非空

     

    履行日期

    carry_date

    datetime

    非空

     

    履行方式

    carry_mode

    Char(20)

    非空

    参引表 :carry_type

    履行状态

    contract_statu

    Bit

    非空

    “1”为履行完毕,“0”为未完毕(默认)

    履约评估

    contract_talk

    Char(30)

    参引表 :talk_type

    相关表:订单(合同编号)、客户(客户编号)、个人销售记录(销售人员编号)、合同意外处理(合同编号)、履行方式、履约评估

    说 明:合同编号及标的额在订单的输入由系统生成,履行方式可作为本表的一个小备注,如具体时间、地点、提货或是送货等;销售人员项由程序提供名单,供用户选择,用户亦可输入,但不能是数据库之外的——可以以公司名义而不划入任何个人,故此处不将其作为外键,仅查询出来供用户选择;不再履行的合同也视为已经履行(即不再将此合同列入待履行之列)。

    表十一:contract_mode(履行方式)

    字段

    类型(长度)

    约束

    说明

    序号

    carry_id

    tinyint

    标识列,主键

    相关表:合同

    有关属性与产品类别表相似。

    理由描述

    carry_type

    Char(20)

    非空

    表十二:contract_talk(合同评估)

    字段

    类型(长度)

    约束

    说明

    序号

    talk_id

    tinyint

    标识列,主键

    相关表:合同

    有关属性与产品类别表相似。

    具体描述

    talk_type

    Char(20)

    非空

    表十三:contract_cancel(已废止/取消的合同)

    字段

    类型(长度)

    约束

    说明

    合同编号

    contractl_id

    Char(10)

    外键/主键

    相关表:合同

    有关属性与产品类别表相似。

    废止理由

    cancel_type

    Char(20)

    非空

    废止日期

    cancel_date

    datetime

    非空

    表十四:Suddenness(合同意外处置)

    字段

    类型(长度)

    约束

    说明

    合同编号

    contract_id

    Char(10)

    外键

    未使用主键

    日  期

    treatdate

    datetime

    非空

    处置方式

    treatment

    Varchar(50)

    非空/参引十五:deal_mode

    相关表:合同(合同编号)

    说 明:均由用户输入(处置方式如提前、推迟、取消等,通过程序修改合同及相关表格)

    表十五:deal_mode(意外处置方式)

    字段

    类型(长度)

    约束

    说明

    序号

    deal_id

    tinyint

    标识列,主键

    相关表:合同

    有关属性与产品类别表相似。

    处置方式

    deal_mode

    Char(30)

    非空

    表十六:contract_profit(合同利润)

    字段

    类型(长度)

    约束

    说明

    合同编号

    contract_id

    Char(10)

    外键,主键

    在“折扣”项中,如用户以比例形式提交,则在程序中先行计算

    标的总成本

    totall_cost

    money

    非空

    折 扣

    discount

    money

    非空

    利润额

    contract_profit

    money

    利润率

    profit_margin

    decimal

    相关表:合同(合同编号)

    说 明:折扣由用户输入,其余由系统建立。

    表十七:contract_verify(合同评审记录/主体评审)

    字段

    类型(长度)

    约束

    说明

    评审号

    verify_id

    Char(10)

    主  键

    由系统建立

    评审日期

    verify_date

    datetime

    非空

     

    有关评审人员

    verify_persons

    varchar(50)

    非空

     

    客户编号

    client_id

    Char(8)

    非空/外键

     

    业务员编号

    seller_id

    Char(8)

    非空

     

    最低利润率需求

    verify_forprofit

    decimal

    非空/非负

     

    拟履行日期

    verify_carry

    datetime

    非空

     

    标的总额

    verify_allprice

    money

    非空/“0”

    由系统建立

    可能的折扣

    verify_allowdis

    money

    非空/“0”

    可实现的利润总额

    verify_profit

    money

    非空/“0”

    可实现的利润率

    verify_margin

    decimal

    非空/“0”

    生产能力评估

    verify_capacity

    varchar(50)

    系统建议结论

    verify_sysadvice

    varchar(50)

    评审结论

    verify_conclusion

    varchar(50)

    可先登记,再评审

    相关表:产品细分评审(评审号)

    说 明:由于评审并不是一次完成,故允许有关的判断项暂允许为空。

    表十八:contract_perverify(合同评审记录/产品细分评审)

    字段

    类型(长度)

    约束

    说明

    评审号

    verify_id

    Char(10)

    外键

    主键

    产品编号

    product_id

    Char(10)

    外键

    数  量

    verify_number

    int

    非空/正数

     

    单  价

    perverify_price

    smallmoney

    非空/正数

     

    最低利润率需求

    perverify_forprofit

    decimal

    非空/非负

     

    可启动日期

    perverify_ondate

    datetime

    非空

     

    可实现利润

    perverify_profit

    money

    非空/非负

    由系统建立

    可实现利润率

    perverify_margin

    decimal

    非空/非负

    生产能力评估

    perverify_capacity

    varchar(30)

    非空

    系统建议结论

    perverify_syadice

    varchar(30)

    非空

    评审意见

    perverify_conclusion

    varchar(30)

    可先登记,再评审

    相关表:产品(产品编号)、主体评审(评审号)

    说 明:暂不考虑产品质量;新时期产品的数据输入需一次完成,故除“评审意见”外,均不允许为空;

    表十九:Target(销售目标)

    字段

    类型(长度)

    约束

    说明

    产品编号

    product_id

    Char(10)

    外键,主键

     

    本年度销售目标

    target

    money

    非空/正数

     

    相关表:产品(产品编号)

    说 明:产品编号可选择,也可直接输入;工作界面增加产品大类,以方便用户。

    表二十:Seller(销售员)

    字段

    类型(长度)

    约束

    说明

    销售人员编号

    seller_id

    Char(4)

    主键

    新注册时由系统给出提示,超级用户可修改之。

    姓  名

    seller_name

    Char(15)

    非空

     

    登录口令

    seller_pwd

    Char(6)

    非空

     

    状  态

    seller _statu

    bit

    非空

    “1”为有效(默认),“0”为失效

    相关表:个人目标分解表(编号)

    说 明:均由用户输入,口令为标准的六位,不足由系统补足(用户表同)。

    表二一:Seller_target(个人目标分解表)

    字段

    类型(长度)

    约束

    说明

    销售人员编号

    seller_id,

    Char(4)

    外键,主键

     

    产品编号

    product_id

    Char(10)

    外键

     

    个人目标

    per_target

    money

    非空/正数

     

    相关表:销售员(编号)、产品(产品编号)

    说 明:工作界面可增加产品大类,以方便用户

    表二二:userlist(用户表)

    字段

    类型(长度)

    约束

    说明

    用户编号

    user_id

    Char(4)

    主键

    在申请用户时,程序中要求提交用于申请用户的密码,代替管理员的确认(销售人员表同)

    用 户 名

    user_name

    Char(15)

    非空

    密  码

    user_pwd

    Char(6)

    非空

    状  态

    user_statu

    bit

    非空

    “1”为有效(默认),“0”为失效

    相关表:用户操作(编号)

    说 明:均由用户输入(可以考虑增加一张表,对业务员及用户状态中的“失效”作出说明,但这应该属于人力资源管理的范畴,放在此处 可能不太合适!)。

    表二三:Operate_recorders(用户操作记录表)

    字段

    类型(长度)

    约束

    说明

    操作序号

    operate_id

    int

    标识列,主键

     

    用户编号

    user_id

    Char(4)

    外键

     

    记录日期

    operate_date

    datetime

    非空

     

    操作记录

    operate_text

    Char(20)

    非空

     

    相关表:用户表(编号)

    说 明:均由系统(以模块函数方式)建立,以实际变更数据库中的值为标准(即单纯的查看不计)。

    (二)、视图对象设计

    为方便查询与维护,本数据库设计了十六个视图,具体描述如下:

    视图一:produce_view(在产品目录)

    字段名

    来源字段

    来源表

    连接关系及条件、聚合等

    产品编号

    productid

    product_id

    Product

    product_type .type_id = Product.product_type

     

    Product .product_statu = 1

    产品名称

    productname

    product_name

    Product

    产品大类

    typename

    type_name

    product_type

    单位成本

    productcost

    product_cost

    Product

    备  注

    productmenu

    product_menu

    Product

    说 明:以“产品”表为基础,为查询提供方便;对于成本的查看同样需要权限。

    视图二:contract_view(合同)

    字段名

    来源字段

    来源表

    连接关系及条件、聚合等

    合同编号

    contractid

    contract_id

    Contract

    Client. client_id= Contract. client_id

     

    Seller.seller_id= Contract. seller_id

     

    Suddenness.contract_id= Contract.contract_id

    客户编号

    clientid

    contract_id

    Contract

    客户名称

    clientname

    client_name

    client

    标 的 额

    sellstotall

    sells_totall

    Contract

    签约折扣

    signdiscount

    sign_discount

    Contract

    业务员编号

    sellerid

    seller_id

    Contract

    业务员姓名

    sellername

    seller_name

    Seller

    订立日期

    signdate

    sign_date

    Contract

    履行日期

    carrydate

    carry_date

    Contract

    履行方式

    carrymode

    carry_mode

    Contract

    履行状态

    contractstatu

    contract_statu

    Contract

    履约评估

    contracttalk

    contract_talk

    Contract

    日期/意外

    dealdate

    treatdate

    Suddenness

    意外情况

    deal

    treatment

    Suddenness

    说 明:以“合同”表为基础,通过“客户”、“销售员”、“合同意外处置”补充数据。

    视图三:product_sales_view(产品销售情况)

    字段名

    来源字段

    来源表/视图

    连接关系及条件、聚合等

    产品编号

    productid

    product_id

    orders

    orders.contract_id= contract_view.contractid

     

    orders.product_id= product_view.product_id

     

    产品名称

    productname

    product_name

    product_view

    产品类别

    typename

    typename

    product_view

    销售数量

    sellsnumber

    sells_number

    orders

    签约价格

    perprice

    per_price

    orders

    签约质量

    contractqulity

    contract_qulity

    orders

    产品成本

    productcost

    productcost

    product_view

    合同状态

    contractstatu

    contractstatu

    contract_view

    签约日期

    signdate

    sign_date

    product_view

    客户编号

    clientid

    clientid

    product_view

    客户名称

    clientname

    client_name

    product_view

    业务员编号

    sellerid

    sellerid

    product_view

    业务员姓名

    sellername

    seller_name

    product_view

    说 明:以“订单”表为基础,通过“合同”视图与“在产品”视图补充数据。

    视图四:sales_target_view1(销售目标完成情况/宏观、签约、产品)

    字段名

    来源字段

    来源表/视图

    连接关系及条件、聚合等

    产品编号

    productid

    product_id

    target

    produce_view . productid=target.product_id

    product_sales_view . productid = target.product_id

    group by productid,…, contractstatu

    (注:在来源中已能表明关系的,此处不再重复,下同)

    产品名称

    productname

    productname

    produce_view

    产品类别

    typename

    typename

    produce_view

    销售目标

    target

    target

    target

    销售总额

    totallprice

    sellsnumber*perprice

    product_sales_view

    销售数量

    sumnumber

    sum (sellsnumber)

    product_sales_view

    产品均价

    avgprice

    SUM(sellsnumber*perprice)/ SUM(sellsnumber)

    合同份数

    contractnumber

    COUNT(contractid)

    product_sales_view

    合同状态

    contractstatu

    contractstatu

    product_sales_view

    说 明:按产品分组,有汇总;以“营销目标”表为基础,通过“产品销售情况”视图和“在产品”视图补充 数据;“合同状态”作为以后查询的条件依据。

    视图五:sales_target_view2(销售目标完成情况/产品、履行)

    字段名

    来源字段

    来源表/视图

    连接关系及条件、聚合等

    产品编号

    productid

    product_id

    sales_target_view1

    contractstatu=1

     

     

    group by productid,…

    产品名称

    productname

    productname

    产品类别

    typename

    typename

    销售目标

    target

    target

    销售总额

    totallfinish

    SUM(totallprice)

    销售数量

    numberfinish

    SUM(sumnumber)

    合同份数

    contractfinish

    SUM(contractnumber)

    产品均价

    avgfinish

    SUM(totallprice) / SUM(sumnumber)

    视图六:sales_pertarget1_view1(销售目标完成情况/业务员、产品、签约)

    字段名

    来源字段

    来源表/视图

    连接关系及条件、聚合等

    业务员编号

    sellerid

    seller_id

    Seller_target

    produce_view . productid=Seller_target.product_id

     

     product_sales_view . sellerid = Seller_target. seller_id 

     

    group by seller_id,  productid,…, contractstatu

    业务员姓名

    sellername

    sellername

    product_sales_view

    产品编号

    productid

    product_id

    Seller_target

    产品名称

    productname

    productname

    produce_view

    产品类别

    typename

    typename

    produce_view

    个人目标

    pertarget

    per_target

    Seller_target

    销售总额

    sumprice

    sellsnumber*perprice

    product_sales_view

    销售数量

    sumnumber

    sum (sellsnumber)

    product_sales_view

    产品均价

    avgprice

    sum(sellsnumber*perprice)/ sum(sellsnumber)

    合同份数

    contractnumber

    count(contractid)

    product_sales_view

    合同状态

    contractstatu

    contractstatu

    product_sales_view

    说 明:按业务员,产品分组,有汇总;以“个人目标分解”表为基础,按业务员及订单产品分类,以签约为 标准,通过“产品销售情况”视图和“在产品”视图补充数据;“合同状态”作为以后查询的条件依据。

    视图七:sales_pertarget1_view2(销售目标完成情况/业务员、产品、履行)

    字段名

    来源字段

    来源表/视图

    连接关系及条件、聚合等

    业务员编号

    sellerid

    sellerid

    sales_pertarget1_view1

    contractstatu=1

     

     

    group by sellerid ,productid,…

    业务员姓名

    sellername

    sellername

    产品编号

    productid

    product_id

    产品名称

    productname

    productname

    产品类别

    typename

    typename

    个人目标

    pertarget

    pertarget

    销售总额

    totallfinish

    sum(totallprice)

    销售数量

    numberfinish

    sum(sumnumber)

    产品均价

    avgfinish

    sum (totallprice) / sum (sumnumber)

    合同份数

    contractfinish

    sum (contractnumber)

    sales_pertarget1_view1

    视图八:product_view(产品利润视图)

    字段名

    来源字段

    来源表/视图

    连接关系及条件、聚合等

    产品编号

    productid

    product_id

    product_profit

    produce_view.product_id= product_profit.product_id

     

    Orders.product_id= product_profit.product_id

    产品名称

    productname

    productname

    produce_view

    产品类别

    producttype

    producttype

    produce_view

    合同编号

    contractid

    contract_id

    product_profit

    销售数量

    sellsnumber

    sells_numbe

    Orders

    销售价格

    perprice

    perprice

    Orders

    产品成本

    productcost

    product_cost

    produce_view

    产品毛利

    profit

    profit

    product_profit

    利 润 率

    rpofitmargin

    profit_margin

    product_profit

    说明:以“产品利润”表为基础,通过“在产品视图”和“定单”表补充数据;此处计算的是每一份合同的每 一种产品的毛利,没有判断合同是否已经履行,在组织用户查询时,可能会附带条件,此时则需另行附加条件并组织联接进行查询。

    视图九:sales_pertarget2_view1(销售目标完成情况/业务员、合同、签约细目)

    字段名

    来源字段

    来源表/视图

    连接关系及条件、聚合等

    业务员编号

    sellerid

    seller_id

    Seller_target

    Contract.seller_id=seller_target.seller_id

    seller.seller_id=seller_target.seller_id

    业务员姓名

    sellername

    seller_name

    Seller

    合同编号

    contractid

    contract_id

    Contract

    标的总额

    sellstotall

    sells_totall

    Contract

    签约日期

    signdate

    sign_date

    Contract

    履行日期

    carrydate

    carry_date

    Contract

    合同状态

    contractstatu

    contract_statu

    Contract

    说 明:以“个人目标分解”表和“合同”表为基础,通过“销售员”表补充数据。

    视图十:sales_pertarget2_view2(销售目标完成情况/业务员、履行细目)

    字段名

    来源字段

    来源表/视图

    连接关系及条件、聚合等

    业务员编号

    sellerid

    sellerid

    sales_pertarget2_view1

    contractstatu=1

    业务员姓名

    sellername

    sellername

    合同编号

    contractid

    contractid

    标的总额

    sellstotall

    sellstotall

    签约日期

    signdate

    signdate

    履行日期

    carrydate

    carrydate

    说 明:为了使用户可以确定的期间进行查询,故不对数据进行处理,根据用户的查询要求在具体查询时进行 处理(分类汇总)。

    视图十一:store_ view(产品库存)

    字段名

    来源字段

    来源表/视图

    连接关系及条件、聚合等

    截止日期

    toDate

    max(store_date)

    Store

    Produc_viewt.product_id= Store. product_id

    产品编号

    Productid

    Product_id

    Store

    产品名称

    productname

    productname

    Produce_view

    产品类别

    typename

    typename

    Produce_view

    库存数量

    storenumber

    store_number

    Store

    质量等级

    storequlity

    store_qulity

    Store

    产品批号

    productcode

    product_code

    Store

    说 明:以“产品出/入库表”为基础;以最后一次登记日期作为截止日期。

    视图十二:signcontract_view(签约客户/全部客户的查询直接操作表,不再建立视图)

    字段名

    来源字段

    来源表/视图

    连接关系及条件、聚合等

    客户编号

    clientid

    client_id

    client

    Client. Client_id= contract.Client_id

    客户名称

    clientname

    client_name

    client

    签约总额

    signtotall

    sum(sells_totall)

    Contract

    联系人

    linkperson

    client_person

    client

    联系方式

    clienttel

    client_tel

    client

    住址

    Address

    client_ad

    client

    说 明:以“客户”表为基础,通过“合同”表补充数据。

    视图十三:store_contract_view(现有库存占在履合同标的之比重)

    字段名

    来源字段

    来源表/视图

    连接关系及条件、聚合等

    产品编号

    productid

    productid

    store_ view

    product_sales_view.productid= store_view.productid

     

    contractstatu=0

    产品名称

    productname

    productname

    store_ view

    产品类别

    typename

    typename

    store_ view

    截止日期

    todate

    todate

    store_ view

    库存数量

    benumber

    sum(storenumber)

    store_ view

    需求数量

    needsnumber

    Sum(sells_number)

    product_sales_view

    质量等级

    qulity

    storequlity

    store_ view

    在履合同标的总额

    totallprice

    sum(sellsnumber * perprice)

    product_sales_view

    库存所占比重

    porpotion

    sum(storenumber)/sum(sellsnumber)* 100

    说 明:以“产品库存”视图为基础,通过“产品销售情况”视图补充数据。

    视图十四:(产品签约焦点)

    字段

    来源字段

    来源表/视图

    连接关系及条件、聚合等

    客户编号

    clientid

    client_id

    client

    client .client_id = product_sales_view.clientid

     

    GROUP BY client.client_id, product_sales_view.productid,…

    客户名称

    clientname

    client_name

    产品编号

    productid

    productid

    product_sales_view

    产品名称

    productname

    productname

    产品类别

    typename

    typename

    合同编号

    contractid

    contractid

    总  价

    totallprice

    sum(sellsnumber * perprice)

    均  价

    avgprice

    sum (sellsnumber *perprice)       / sum (sellsnumber)

    总 成 本

    totallcost

    sum (sellsnumber *productcost)

    说 明:以“客户”表为基础,通过“产品销售情况”视图补充数据。

    视图十五:contract_verify_view(合同评审/主体)

    字段

    来源字段

    来源表/视图

    连接关系及条件、聚合等

    评审号

    verifyid

    verify_id

    contract_verify

    client. client_id= contract_verify.client_id

    Seller. seller_id= contract_verify. seller_id

    评审日期

    verifydate

    verify_date

    有关评审人员

    verifypersons

    verify_persons

    客户编号

    clientid

    client_id

    客户名称

    clientname

    client_name

    client

    联系人/代表人

    clientperson

    client_person

    client

    业务员编号

    sellerid

    seller_id

    contract_verify

    业务员姓名

    sellername

    seller_name

    Seller

    拟履行日期

    verifycarry

    verify_carry

    contract_verify

    最低利润率需求

    verifyforprofit

    verify_forprofit

    标的总额

    verifyallprice

    verify_allprice

    可能的折扣

    verifyallowdis

    verify_allowdis

    可实现利润总额

    verifyprofit

    verify_profit

    可实现的利润率

    verifymargin

    verify_margin

    生产能力评估

    verifycapacity

    verify_capacity

    系统建议结论

    verifysysadvice

    verify_sysadvice

    评审结论

    verifyconclusion

    verify_conclusion

    说明;以“合同评审记录/主体评审”表为基础,通过“客户”、“业务员”表补充数据;用户界面添加成本总 额项(从在产品视图与产品细分视图中查询、计算)、最长需求期限、最短实现期限(产品细分评审相应的最大值,忽略需累加情形)。

    视图十六:contract_perverify_view(合同评审/产品细分)

    字段

    来源字段

    来源表/视图

    连接关系及条件、聚合等

    评审号

    verifyid

    verify_id

    contract_perverify

    produce_view. Productid= contract_perverify. product_id

     

    产品编号

    productid

    product_id

    产品名称

    productname

    productname

    produce_view

    产品类别

    typename

    typename

    数  量

    verifynumber

    verify_number

    contract_perverify

    单  价

    perverifyprice

    perverify_price

    最低利润率需求

    perverifyforprofit

    perverify_forprofit

    成  本

    productcost

    productcost

    produce_view

    可启动日期

    perverifyondate

    perverify_ondate

    contract_perverify

    可实现利润

    perverifyprofit

    perverify_profit

    contract_perverify

    可实现利润率

    perverifymargin

    perverify_margin

    生产能力评估

    perverifycapacity

    perverify_capacity

    系统建议结论

    perverifysyadice

    perverify_syadice

    评审意见

    perverifyconclusion

    perverify_conclusion

    说明;以“合同评审记录/产品细分评审”表为基础,通过“在产品视图”补充数据;用户界面添加成本总额项(从在产品视图与产品细分视图中查询、计算)、最长期限、最短实现期限(查询“合同评审记录/主体评审”与“产品生产周期”通过计算获得)。

    (三)、数据库报表设计

    本数据库暂未设计报表(拟将有关统计信息组织成报表)。

    (四)、数据库逻辑结构设计

    本数据库的逻辑结构如下图:

    销售管理系统数据库设计说明书 - saint - 不放弃不强求

    (五)、索引设计

    每个表的主键都是聚集索引,SQL Server自动为这些主键设置索引和索引结构。

    (六)、存储过程设计:

    无存储过程。

    (七)、触发器设计:

    无触发器设计

    (八)、其它逻辑设计

    不适用。 

     (九)、数据库物理结构设计

    本数据库的物理结构的部分符合SQL Server 2000关于数据文件、卷、页的分配和分配规则。

    数据库初始大小为(20MB),按照超过最大容量后(20%)的增长速率进行增长。

    数据库分配日志文件大小为(20M),自动增长。应用程序中自动截断事务日志。

    数据库的物理文件、主要数据文件、次要数据文件、文件组等都按照系统的默认设置进行。物理文件的存储位置为SQL Server 2000默认的位置。

    四、完成数据库设计,按以上设计要求创建数据库和表。

    (一)、完成的数据库设计:

    数据库名称:sales

    中文名称或意义:营销

    创建日期:2005.12.12

    创建人:王章聖

    数据文件初始大小:(20MB)

    数据文件物理位置:(C:\SQL Server\Data\ Library_data.MDF)

    日志文件初始大小:(20MB)

    日志文件物理位置:(C:\SQL Server\Data\ Library_log.LDF)

    文件组名称:sales

    特性列表:

    只读:False

    限制访问:False

    故障还原模型:简单

    自动关闭:False;

    自动收缩:True;

    兼容性级别:数据库兼容性80

    (二)、完成的数据表设计:

    数据库表及结构参见本文档前面第三部分数据库结构设计。

    (三)、完成其他数据库相关设计

    数据库逻辑关系、检查、约束等设计参见本文档前面第三部分,此处略。

    (四)、安全保密设计

    数据库只被少数授权用户修改,其他受限用户有权查看,但均必须提供用户名和正确的密码。存储数据库的服务器也只能让系统管理员或少数高级管理人员登录。

    数据库的安全策略,遵从SQL Server 2000的安全策略事项。


    转载自:  http://blog.163.com/saint998@126/blog/static/4306292920077293647361/



    展开全文
  • OA 协同办公系统 数据库 设计说明
  • 电商数据库设计 mysql 数据库设计规范

    生产环境如下

    MySql 版本 MySql 5.7
    图形管理工具Navicat
    Linux 系统

    项目说明

    电商的基本模块有如下几个, 按照用户使用的流程

    Created with Raphaël 2.1.0 用户登录 选购商品 加入购物车 检查库存 提交订单 货到付款? 发货 订单付款 yes no

    通过流程图 , 我们需要设计以下几个模块

    模块模块说明
    用户模块完成用户注册和登录验证
    商品模块前后台商品管理和浏览
    订单模块订单及购物车的生成和管理
    仓配模块仓库库存和物流管理

    接下来就是数据库设计, 先说一说数据库的设计规范

    在实际工作中,一般情况下,各个公司都有自己的数据库设计规范,在遵循公司内部规范的同时,我们还有业内共识通用的设计规范,在此,就本次的电商数据库设计,说明以下部分规范.这个规范也同样适用与大部分业务的数据库设计.

    数据库命名规范

    • 所有的数据库对象名称必须使用小写字母并使用下划线分割(mysql 数据库对大小写敏感)
    • 所有数据库对象名称禁止使用MySqL保留关键字 eg. from关键字
    • MySQL关键字查询
    • 数据库对象的命名要见名之意 , 最好不要超过32个字符.
    • 数据库操作的时候 ,总会导入导出表 , 有一些临时表 , 临时表的最好以tmp为前缀并且以日期为后缀
    • 备份表的命名, 最好以bak为前缀并且以日期为后缀
    • 所有存储相同数据的列名和列类型必须一致

    数据结构基本设计规范

    • 所有的表必须使用Innodb存储引擎
      MySQL5.6 以后 Innodb 引擎成了默认的存储引擎 . 支持事务,行及锁,有更好的恢复性,高并发下性能好

    • 数据库和标的字符集统一使用UTF-8
      MySQL UTF-8字符集汉子占3个字节 , ASSIC占1个字节

    • 所有的表和字段都要添加注释

    • 尽量控制单表数据量的大小 , 尽量在500万行以内
      如果必须超过这个量 , 一般采用历史数据归档(eg. 日志类表) , 分库分表(主要是业务数据)等方式.

    • 尽量做到冷热数据分离,减小表的宽度
      这样做的目的是较少磁盘的IO , 保证热数据的内存缓存命中率
      利用更有效的利用缓存,避免读入更无用的冷数据(少使用 select *)
      经常使用的列放到一个表中

    • 禁止在表中建立预留字段
      很难做到见名之意
      无法确认存储的数据类型.
      对预留字段进行修改时,会对表造成锁定

    • 禁止在数据库中存储图片, 文件等二进制数据 .

    • 禁止在线上数据库做数据库压力测试

    • 禁止从开发环境,测试环境直连生产环境数据库
      否则很容易造成数据库污染

    数据库索引设计规范

    • 限制每张表的上的索引数量 , 建议单张表索引不超过 5 个

      • Innodb是按照主键的顺序来组织表的
      • 不使用更新频繁的列作为主键 , 不使用多列主键
      • 不使用UUID , MD5 , HASH , 字符串列作为主键
      • 主键建议使用自增ID使用主键
    • 常见索引列建议

      • select ,update , delete 语句中的where 从句中的列
      • 包含在order by ,group by ,distinct 中的字段
      • 多表JOIN的关联列
    • 如何选择索引列的顺序
      • 区分度最高的列放在联合索引的最左侧(主键, 唯一索引列)
      • 尽量把字段长度最小的列放在联合索引的最左侧
      • 使用频繁的列放到最左侧

    数据字段设计规范

    • 优先选择符合存储需要的最小的数据类型

      • 将字符串转化为数字类型存储 INET_ATON('255.255.255.255') = 429467295 IETN_NTOA(429467295) = '255.255.255.255'
      • 对于非负整数来说, 优先使用无符号整型
      • MySQL 中 varchar(n) 这里的n 代表的是字符数 , 不是字节数 ,varchar(255) 可以存 255 个汉字 , 需要占用 765 个字节
      • 过大的长度会消耗更多的内存
    • 避免使用 TEXT , BLOB数据类型

      • 如果必须使用 , 将BLOB或者是TEXT列分离到单独的扩展表
    • 避免使用 ENUM数据类型

    • 尽可能把列定义为 NOT NULL

    • 使用 timestamp 或者datetime 类型存储时间

      • timestamp 存储时间 范围 为 1970-01-01 00:00:01 ~ 2038-01-19 03:14:07

      • timestamp 区间不够, 使用datetime 存储

    • 同财务相关的金额类数据 , 必须使用 decimal 类型

      • decimal 类型为精准浮点数 , 在计算时不会丢失精度

    数据库SQL开发规范

    • 充分使用表已经存在的索引查询

      • 使用left join 或者 not exists 优化 not in 操作
    • 禁止使用 select * 查询

      • 会消耗更多的cpu 和io 以及网络带宽资源
      • 无法使用覆盖索引
      • 可较少表结构变更带来的影响
    • 禁止使用不含字段列表的 insert 语句

    • 避免使用子查询 , 可以把子查询优化 join 操作

      • 子查询结果集无法使用索引
      • 子查询会产生临时表操作 , 如果子查询数据量大则严重影响效率
    • 避免使用 join 关联太多的表

      • 建议不超过 5 个
    • 减少同数据库的交互次数

      • 数据库更适合处理批量操作
    • 使用 in 代替 or

    • 禁止使用 order by rand () 进行随机排序

    • where 从句中禁止对列进行函数转换和计算

      • where date(createtime) = ‘20170101’ (禁止这样)
      • 上面的可以这样改 where createtime >='20170101' and createtime <'20170102'
    • 再明显不会有重复值时 使用 union all 而不是 union

    • 拆分复杂的大 sql 为多个 小 sql

    数据库操作行为规范

    • 超过 100 万行的批量写操作 ,要 分批分次进行操作

    • 禁止为程序使用的账号赋予super 权限

    • 对于程序连接数据库账号 , 遵循权限最小原则

      • 程序使用数据库账号只能在一个DB下使用 , 不准跨库
      • 程序使用的账号原则上不准有 drop 权限
    展开全文
  • 数据库设计说明书的编写

    万次阅读 多人点赞 2019-06-17 19:46:34
    我们通过书写这份文档说明,从各方面进行对校园地图的数据库设计规划,用它指导该系统在数据库各方面的内容,为系统开发的程序员、系统分析员提供基准文档。我们也希望通过写数据设计说明书,规范数据名称、数据范围...

    G.1 引言

    G.1.1  编写目的

            数据库的表结构设计是整个项目开发中一个非常重要的环节,一个良好的数据库设计,可以提高开发效率,方便系统维护,并且为以后项目功能的扩展留下余地。我们通过书写这份文档说明,从各方面进行对校园地图的数据库设计规划,用它指导该系统在数据库各方面的内容,为系统开发的程序员、系统分析员提供基准文档。我们也希望通过写数据设计说明书,规范数据名称、数据范围、数据代码等。这份文档是项目小组共同作战的基础,有了开发规范、程序模块之间和项目成员之间的接口规则、数据方式,大家就有了共同的工作语言、共同的工作平台,使整个软件开发工作可以协调有序地进行。

    G.1.2  背景

    说明:

    a、说明待开发的数据库的名称和使用此数据库的软件系统的名称;

    b、列出该软件系统开发项目的任务提出者,用户以及将安装该软件和这个数据库的计算站(中心)。

    a)    待开发的数据库名称:weixinxiaochengxu

    b)  待开发系统的名称:基于微信小程序的电子科大校园地图;

    c)  本项目的任务提出者:老师引导下同学们共同讨论的结果;

    d)  开发者:罗子建 金成哲 陆冠臣

    e)  用户:在校大学生 校外游客

     

    G.1.3  定义

    列出本文件中用到的专门术语的定义、外文首字母组词的原词组。

    词汇名称

    词汇定义

    备注

    C/S

    客户端/服务器

    Client/Server 的缩写

    SQL

    SQL(Structured Query Language)是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。

    Django

    Django是一个开放源代码的Web应用框架,由Python写成

    Django采用了MVT的框架模式,即模型M,视图V和模版T

    E-R图

    实体-联系图,提供了表示实体类型、属性和联系的方法,用来描述现实世界的概念模型。

    Entity -Relationship 的缩写

     

    G.1.4  参考资料

    1. 经核准的用户合同、《用户需求说明书》和《项目开发委托合同书》;
    2. 《软件工程用户手册》,《软件工程操作手册》等
    3. 参考技术书籍如下:

    《玩转django2.0》——黄永翔  清华大学出版社 2018-11

    《从零开始学微信小程序开发》——高洪涛 电子工业出版社 2018-2

    《微信小程序快速开发》——易伟 人民邮电出版社 2017-5

    G.2 外部设计

    G.2.1  标识符和状态

    数据库软件的名称:Mysql 5.7

    数据库的名称:weixinxiaochengxu

    表名

    标识符或名称

    描述信息

    状态

    标记点表

    标记点id

    用来保存校园标记点的位置以及相关描述

    使用

    用户表

    用户id

    用来保存用户信息

    使用

    功能表

    功能id

    用来保存地点的功能描述以及标签分类

    使用

    讨论表

    讨论id

    用来保存发布的讨论

    使用

    讨论图片表

    讨论图片id

    用来保存上传的讨论图片

    使用

    评论表

    评论id

    用来保存发布的评论

    使用

    轮播图片表

    轮播图片id

    用来保存系统发布的轮播图片

    使用

     

    G.2.2  使用它的程序

    列出将要使用或记问此数据库的所有应用程序,对于这些应用程序的每一,给出它的名称和版本号。

    应用程序

    访问的数据表

    版本号

    系统登陆

    用户表

    1.0

    学生认证

    用户表

    1.0

    查看清水河地图

    标记点表

    1.0

    查看沙河地图

    标记点表

    1.0

    发布讨论

    讨论表,讨论图片表

    1.0

    查看讨论

    讨论表,讨论图片表

    1.0

    点击轮播图

    轮播图片表

    1.0

    发布评论

    评论表

    1.0

    查看评论

    评论表

    1.0

    查看功能

    功能表

    1.0

    历史关注

    讨论表,评论表,讨论图片表

    1.0

     

    G.2.3  约定

    陈述一个程序员或一个系统分析员为了能使用此数据库而需要了解的建立标号、标识的约定,例如用于标识数据库的不同版本的约定,用于标识库内各个文卷、记录、数据项的命名约定等。

    文卷

    记录

    数据项的命名约定

    标记点表

    Location

    用户表

    User

    功能表

    Function

    讨论表

    Discussion

    讨论图片表

    DiscussionImage

    评论表

    Comment

    轮播图片表

    RollingImage

     

    G.2.4  专门指导

    准备从事此数据库的生成、从事此数据库的测试、维护人员提供专门的指导。

     

    G.2.5  支持软件

    简单介绍同此数据库直接有关的支持软件,如数据库管理系统、存储定位程序、用于装入、生成、修改、更新数据库的程序等。说明这些软件的名称、版本号和主要功能我,如所用数据模型的类型、允许的数据容量等。列出这些支持软件的技术文件的标题,缩号及来源。

    支持软件名称

    版本号

    主要功能

    Mysql

    5.7

    建立数据库并提供数据库维护与管理功能

    Django

    2.2.1

    后端框架,为小程序提供数据库的技术支持

    Python

    3.6.5

    代码编写

    Javascript

     

    脚本语言,提供HTTP的技术支持

    navicat

     

    管理员工具

     

    G.3 结构设计

    系统按照微信小程序官方文档的统一规划,运行在weixinxiaochengxu数据库中,采用了数据库的热备份技术,实现数据的有效和安全。

    G.3.1  概念结构设计

    说明本数据库将反映的现实世界中的实体,属性和它们之间的关系等的原始数据形式,包括各数据项、记录、系、文卷的标识符、定义、类型、度量单位和值哉,建立本数据库的每一幅用户视图。

    用户模块

           用户信息(用户名称,学生认证状态,历史关注,用户哈希名,用户id)

                                            

    历史关注(我的发布,我的讨论)

                                           

    我的发布:功能id

    我的讨论:讨论id

     

    其中属性约束如下:

           学生认证状态:已认证,未认证

     

    学生认证模块

           学生认证(学号,密码)

                               

     

    发布介绍模块

           发布介绍(标签,描述)

                                

    其中属性约束为:

           标签为系统固定安排的,用户不能自己添加

    发布讨论模块

           发布讨论(想法,讨论图片)

                               

     

    评论模块

           参与评论(评论内容)

                         

    搜索模块

           搜索(搜索目标,功能标签)

                       

    其中属性约束为:

           搜索目标为系统提供的标签选项,用户不能自己添加。

     

    全局E-R 图如下

                                    

     

    G.3.2  逻辑结构设计

    说明把上述原始数据进行分解、合并后重新组织起来的数据库全局逻辑结构,包括所确定的关键字和属性、重新确定的记录结构和文卷结构、所建立的各个文卷之间的相互关系,形成本数据库的数据库管理员视图。

     

    用户表记录用户登陆账号以及学生认证等基本信息

    表 User 的结构

    字段名

    数据类型

    长度

    主键

    非空

    描述

    用户id

    整数

    20

    自增

    用户头像URL

    URL

     

     

    用户头像,上传到数据库转换成对应的URL格式

    用户昵称

    字符串

    20

     

     

    在讨论和评论界面里展示的用户昵称

    用户哈希名

    字符串

    20

     

     

    为维护系统安全,采用md5算法进行传输

     

    功能表记录标记点的功能展示

    表 Function 的结构

    字段名

    数据类型

    长度

    主键

    非空

    描述

    功能id

    整数

    20

    自增

    功能描述

    字符串

    20

     

     

    针对某地点的功能描述

    地点id

    整数

    20

     

     

    该功能对应的标记点

    发布用户id

    整数

    20

     

     

    发布用户标识符

     

    标记点表记录校园地图的地点描述以及具体地理位置

    表 Location 的结构

    字段名

    数据类型

    长度

    主键

    非空

    描述

    标记点id

    整数

    20

    自增

    标记点名

    字符串

    20

     

     

    标记位置的具体名称

    经度

    浮点类型

    9

     

     

    地理参数

    纬度

    浮点类型

    9

     

     

    地理参数

    地点描述

    字符串

    20

     

     

    针对该地点的地理特征描述

     

    讨论表记录用户发布讨论的内容

    表 Discussion 的结构

    字段名

    数据类型

    长度

    主键

    非空

    描述

    讨论id

    整数

    20

    自增

    发布用户id

    整数

    20

     

     

    发布用户,方便添加到历史关注界面中显示

    地点id

    整数

    20

     

     

    针对该地点的讨论

    讨论内容

    字符串

    140

     

     

    具体讨论内容

     

    讨论图片表记录用户发布讨论的图片信息

    表 DiscussionImage 的结构

    字段名

    数据类型

    长度

    主键

    非空

    描述

    讨论图片id

    整数

    20

    自增

    图片URL

    URL

     

     

     

    经过md5算法处理后的图片

    讨论id

    整数

    20

     

     

    确定参与讨论的标识符

    文件名

    字符串

    20

     

     

    图片名

    文件格式

    字符串

    20

     

     

    图片格式

    文件大小

    文件格式

    10MB

     

     

    图片大小

    创建时间

    时间格式

     

     

     

    图片创建时间

    上传时间

    时间格式

     

     

     

    图片上传时间

     

    评论表记录用户参与评论的信息

    表 Comment 的结构

     

    字段名

    数据类型

    长度

    主键

    非空

    描述

    评论id

    整数

    20

    自增

    讨论id

    整数

    20

     

     

    用于标识参与讨论的外键

    评论内容

    字符串

    140

     

     

    参与评论的文字内容

    评论者用户id

    整数

    20

     

     

    发布评论的用户id

    被评论者用户id

    整数

    20

     

     

    被评论者用户id

     

    轮播图片表记录小程序整体的轮播图片

    表 RollingImage 的结构

    字段名

    数据类型

    长度

    主键

    非空

    描述

    轮播图片id

    整数

    20

    唯一标识轮播图片的标识符

    标记点id

    整数

    20

     

     

    记录该地点的轮播图

    轮播图片URL

    URL

     

     

     

    转换为Md5 算法后的URL

     

    G.3.3  物理结构设计    

    数据库名称为: weixinxiaochengxu

    存储位置:默认位置

    建立系统程序员视图,包括:

    1. 数据在内存中的安排,包括对索引区、缓冲区的设计;
    2. 所使用的外存设备及外存空间的组织,包括索引区、数据块的组织与划分;
    3. 访问数据的方式方法。

     

     

    通过上面的逻辑结构分析所得到表的关系,下面使用 Django 框架 设计并得到数据库和相应的表

     

    创建 User

    class User(models.Model):

        UserId = models.AutoField(primary_key=True, null=False)

        UserUrl = models.URLField()

        UserNickName = models.CharField()

        UserHash = models.CharField()

     

    创建 Location

    class Location(models.Model):

        LocationId = models.AutoField(primary_key=True, null=False) 

        LocationName = models.CharField(max_length=20)

        Latitude = models.FloatField(9, 6)  # 经度

        Longitude = models.FloatField(9, 6)  # 纬度

    LocationDescription = models.CharField(max_length=20)

     

    创建 Function

    class Function(models.Model):

        FunctionId = models.AutoField(primary_key=True, null=False)

        FunctionDescription = models.TextField(max_length=200)

        LocationId = models.ForeignKey(Location, on_delete=models.CASCADE)

    PublishUserId=models.ForeignKey(UserInformation,on_delete=models.CASCADE)  

     

    创建 Discussion

    class Discussion(models.Model):

        DiscussionId = models.AutoField(primary_key=True, null=False)

        PublishUserId=models.ForeignKey(UserInformation,on_delete=models.CASCADE)

        LocationId = models.ForeignKey(Location, on_delete=models.CASCADE)

    DiscussionCode = models.TextField(max_length=140)

     

    创建 DiscussionImage

    class DiscussionImage(models.Model):

        DiscussionImageId = models.AutoField(primary_key=True, null=False)

        ImageUrl = models.URLField()

        DiscussionId = models.ForeignKey(Discussion, on_delete=models.CASCADE)

        filename = models.CharField(max_length=252, default="")

        file_md5 = models.CharField(max_length=128)

        file_type = models.CharField(max_length=32)

        file_size = models.IntegerField()

        created_at = models.DateTimeField(default=datetime.now)

    updated_at = models.DateTimeField(default=datetime.now)

     

    创建 Comment

    class Comment(models.Model):

        CommentId = models.AutoField(primary_key=True, null=False)

        DiscussionId = models.ForeignKey(Discussion, on_delete=models.CASCADE)

        CommentCode = models.TextField(max_length=140)

        CommenterUserId = models.AutoField() 

    CommenterUserOrId = models.AutoField() 

     

    创建 RollingImage

    class RollingImage(models.Model):

        RollingImageId = models.AutoField(primary_key=True, null=False)

        LocationId = models.ForeignKey(Location, on_delete=models.CASCADE)

    RollingImageUrl = models.URLField()

     

    G.4 运用设计

    G.4.1  数据字典设计

    对数据库设计中涉及到的各种项目,如数据项、记录、系、文卷、模式、子模式等一般要建立起数据字典,以说明它们的标识符,同义名及有关信息,在本节中要说明对此数据字典设计的基本考虑。

     

    G.4.2  安全保密设计

    通过区分不同的访问者、不同的访问类型和不同的数据对象,进行分别对待而获得的数据库安全保密设计考虑。

    访问者

    权限提供

    访问类型

    游客(未学生认证成功)

    受限的查询搜索

    POST

    学生

    发布评论,发布讨论,发布功能介绍,查询搜索

    POST

     

    数据库由专门数据库管理用员对数据库操作,需要注意以下几项安全问题:

    访问安全 、网络安全 、传输安全 、备份安全 、数据安全

     

    设置以下安全规则:

    1. 每天进行数据备份是保障系统安全的重要手段,保证备份安全
    2. 系统设置用户的标识以鉴定是否是合法用户,并要求利用电子科大信息门户系统进行学生认证,并将合法用户设置成学生身份,保证用户身份不被盗用,保证数据安全。
    3. 系统对不同的数据设置不同的访问级别,限制访问用户可查询的处理数据类别和内容,保证网络安全。
    4. 系统对不同用户设置不同的权限,区分不同的用户,如区分学生和游客,保证访问安全。
    5. 传输皆采用md5 算法传输数据,不采用明文传输,保证传输安全
    展开全文
  • 软件开发过程中,用于评审数据库设计文档的检查表。
  • 数据库设计三大范式

    万次阅读 2016-10-20 21:59:49
    数据库设计三大范式  为了建立冗余较小、结构合理的数据库,设计数据库时必须遵循一定的规则。在关系型数据库中这种规则就称为范式。范式是符合某一种设计要求的总结。要想设计一个结构合理的关系型数据库,必须...

    为了建立冗余较小、结构合理的数据库,设计数据库时必须遵循一定的规则。在关系型数据库中这种规则就称为范式。范式是符合某一种设计要求的总结。要想设计一个结构合理的关系型数据库,必须满足一定的范式。

    在实际开发中最为常见的设计范式有三个:

    1.第一范式(确保每列保持原子性)

    第一范式是最基本的范式。如果数据库表中的所有字段值都是不可分解的原子值,就说明该数据库表满足了第一范式。

    第一范式的合理遵循需要根据系统的实际需求来定。比如某些数据库系统中需要用到“地址”这个属性,本来直接将“地址”属性设计成一个数据库表的字段就行。但是如果系统经常会访问“地址”属性中的“城市”部分,那么就非要将“地址”这个属性重新拆分为省份、城市、详细地址等多个部分进行存储,这样在对地址中某一部分操作的时候将非常方便。这样设计才算满足了数据库的第一范式,如下表所示。
    这里写图片描述
    上表所示的用户信息遵循了第一范式的要求,这样在对用户使用城市进行分类的时候就非常方便,也提高了数据库的性能。

    2.第二范式(确保表中的每列都和主键相关)

    第二范式在第一范式的基础之上更进一层。第二范式需要确保数据库表中的每一列都和主键相关,而不能只与主键的某一部分相关(主要针对联合主键而言)。也就是说在一个数据库表中,一个表中只能保存一种数据,不可以把多种数据保存在同一张数据库表中。

    比如要设计一个订单信息表,因为订单中可能会有多种商品,所以要将订单编号和商品编号作为数据库表的联合主键,如下表所示。

    订单信息表
    这里写图片描述
    这样就产生一个问题:这个表中是以订单编号和商品编号作为联合主键。这样在该表中商品名称、单位、商品价格等信息不与该表的主键相关,而仅仅是与商品编号相关。所以在这里违反了第二范式的设计原则。

    而如果把这个订单信息表进行拆分,把商品信息分离到另一个表中,把订单项目表也分离到另一个表中,就非常完美了。如下所示。
    这里写图片描述
    这样设计,在很大程度上减小了数据库的冗余。如果要获取订单的商品信息,使用商品编号到商品信息表中查询即可。

    3.第三范式(确保每列都和主键列直接相关,而不是间接相关)

    第三范式需要确保数据表中的每一列数据都和主键直接相关,而不能间接相关。

    比如在设计一个订单数据表的时候,可以将客户编号作为一个外键和订单表建立相应的关系。而不可以在订单表中添加关于客户其它信息(比如姓名、所属公司等)的字段。如下面这两个表所示的设计就是一个满足第三范式的数据库表。
    这里写图片描述
    这样在查询订单信息的时候,就可以使用客户编号来引用客户信息表中的记录,也不必在订单信息表中多次输入客户信息的内容,减小了数据冗余。

    展开全文
  • 【软件工程】数据库设计说明

    千次阅读 热门讨论 2018-03-30 20:39:22
    数据库设计说明书(GB8567——88) 1引言 1.1编写目的 本文档描述了机房收费系统数据库的设计,提供了数据酷库设计的可视性以及软件支持所需的信息,应用于机房收费系统开发前期,为后期的数据库设计指引方向,也...
  • 数据库设计——评论回复功能

    万次阅读 多人点赞 2017-05-03 02:43:48
    本文主要介绍评论功能的数据库设计。评论功能最主要的是发表评论回复评论(删除功能在后台)。评论功能的拓展功能体现有以下几方面: (1)单篇文章的评论数量信息展示; (2)从时间维度,按照时间倒
  • 数据库设计(database design):数据库设计是指对于一个给定的应用环境,构造(设计)优化的数据库逻辑模式物理结构,并据此建立数据库及其应用系统,使之能够有效的存储管理要求,满足各种用户的需求,包括信息管理...
  • 列车票务系统数据库课程设计说明书 列车票务系统数据库课程设计说明
  • 关于数据库设计文档(设计说明书),其它人写的。
  • 茶叶公司进销存管理系统的数据库设计与数据操作课程设计说明书。以包括: 1、系统分析(含数据流图、数据字典) 2、数据库概念模型设计(包含子系统与全局E-R图、PowerDesigner建立的CDM模型) 3、数据库逻辑模型...
  • 微博数据库设计

    2013-05-30 19:26:15
    4 数据库物理设计 14 4.1 确定数据库的存储结构 14 4.2 确定数据库的存取方法 15 5 数据库应用设计 15 5.1 数据库脚本 15 5.2 数据库完整性设计 15 5.3 数据库安全性设计 15 5.4 存储过程设计 15 6 数据库应用开发 ...
  • 数据库设计的三大范式:为了建立冗余较小、结构合理的数据库,设计数据库时必须遵循一定的规则。在关系型数据库中这种规则就称为范式。范式是符合某一种设计要求的总结。要想设计一个结构合理的关系型数据库,必须...
  • 数据库系统原理 - - (3)数据库设计

    万次阅读 2020-07-03 08:55:25
    数据库设计概念1)数据库的生命周期2)数据库设计的目标3)数据库设计的内容4)数据库设计的方法a. 直观设计法b.规范设计法c.计算机辅助设计法5)数据库设计的过程2.数据库设计的基本步骤1)需求分析需求分析的四个...
  • 数据库设计说明书实例.doc
  • 数据库设计的一般步骤

    万次阅读 多人点赞 2019-06-13 20:03:58
    经过几天给韶关某个高校进行数据库设计的实训,对数据库设计的过程有了更加深刻的理解。 数据库的设计按照以下步骤: (1)了解功能需求 在设计数据库之前,设计人员必须要先了解系统的功能需求。这里可以通过...
  • 机房收费系统-数据库设计说明

    千次阅读 热门讨论 2014-01-03 19:08:26
    指出机房收费系统的数据库设计说明,对数据库中使用的所有标识、逻辑结构物理结构做出具体的设计规定。 预期读者:程序员,数据库管理员。 1.2背景 说明: a. 数据库的名称:Charge_sys b. 软件系统的...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 486,197
精华内容 194,478
关键字:

如何描述和说明数据库设计