艾伟_转载:基于.NET平台的Windows编程实战(二)—— 需求分析与数据库设计

简介: 本系列文章导航基于.NET平台的Windows编程实战(一)——前言基于.NET平台的Windows编程实战(二)—— 需求分析与数据库设计基于.NET平台的Windows编程实战(四)—— 数据库操作类的编写基于.NET平台的Windows编程实战(五)—— 问卷管理功能的实现基于.NET平台的Windows编程实战(六)—— 题目管理功能的实现   大家都知道一个系统的成败与否关键在于其所做的需求分析是否到位,数据库的设计是否合理。

本系列文章导航

基于.NET平台的Windows编程实战(一)——前言

基于.NET平台的Windows编程实战(二)—— 需求分析与数据库设计

基于.NET平台的Windows编程实战(四)—— 数据库操作类的编写

基于.NET平台的Windows编程实战(五)—— 问卷管理功能的实现

基于.NET平台的Windows编程实战(六)—— 题目管理功能的实现

  大家都知道一个系统的成败与否关键在于其所做的需求分析是否到位,数据库的设计是否合理。因为本系列文章的目的是在于提高大家对.NET Windows编程的实战能力,故不对需求分析与数据库设计作太多的理论说明,有关这方面的知识请大家自行查阅相关资料,在这里这是简单的罗列一下整个案例系统的功能需求及数据库的设计。

  一、需求分析
  看过本系列课程前言中案例背景的,应该能大致知道本案例的需求了,我在这里简单的罗列一下吧:
  1.系统应该为单机版可安装的软件;
  2.系统统计出的数据可随时进行合并,导出……
  3.系统应具备如下基本功能:
    (1).问卷管理:添加、编辑、查看、导出、删除问卷等;
    (2).问卷统计:添加、导出、合并、清空统计,并可自动对录入的统计进行自动百分比计算等;
    (3).题目管理:添加、编辑、查看、删除、存入题库等;
    (4).题库管理:添加、编辑、查看、删除、插入到问卷等;
    (5).数据库导出及还原功能。
  功能流程图如下:
            查看问卷 导出问卷 查看统计 导出统计 合并统计
                      \    /                  \     /       /
      添加问卷--->问卷管理<----->问卷统计<----添加统计
                         |  \                   \
                       /   \ 删除问卷   清空统计 查看题目
                      /     \                           /     \
              编辑问卷  添加题目<-->题目管理<-->题库管理
              导出数据库                      /      \      /     \
                  /                 编辑/排序题目  删除题目  编辑题目
          数据库管理<--->还原数据库

   二.数据库设计
  本案例的数据库设计相对简单,没什么特别之处,以下罗列出各数据表的设计:

  1.问卷表(Lj_Survey)
  Id 自动编号 主键 问卷ID
  Survey_Name 文本 问卷名
  Survey_Sponsor 文本 发起人
  Survey_OutCount 数字 发放问卷数
  Survey_Count  数字  回收问卷数
  Survey_TitleCount 数字 题目数
  Survey_DateTime 日期/时间  创建问卷的时间

  2.题目表(Lj_Title)
  Id 自动编号 主键 题目ID
  Title_Sid 数字 外键 所属问卷的ID
  Title_Content 文本 题目标题
  Title_Type 文本  题目类型(0为单选题,1为多选题)
  Title_Order 数字 排序号
  Title_DateTime 日期/时间 题目添加时间
  Title_IsAddTSt 文本 是否存入题库(0为存入,1为未存入)

  3.统计结果表(Lj_Result)
  Id 自动编号 主键
  Result_Sid 数字 外键 所属问卷ID
  Result_Tid 数字 外键 所属题目ID
  Result_Content 文本 选项内容
  Result_Count 数字 每个选项的统计数

  4.题库表(Lj_TitleStorage)
  Id 自动编号 主键
  TitleSt_Title 文本 题目标题
  TitleSt_Type 文本  题目类型(0为单选,1为多选)
  TitleSt_TRContent 文本  选项内容
  TitleSt_DateTime 日期/时间 添加时间

  数据库关系图:

另外再附上几张系统的效果图片吧[没专门去设计过,比较丑^_^]:


最后,谢谢大家的支持,敬请关注下面的课程……

目录
相关文章
|
11天前
|
区块链 C# Windows
PasteEx:一款.NET开源的Windows快捷粘贴神器
PasteEx:一款.NET开源的Windows快捷粘贴神器
40 17
|
11天前
|
Linux API C#
基于 .NET 开发的多功能流媒体管理控制平台
基于 .NET 开发的多功能流媒体管理控制平台
|
11天前
|
Web App开发 C# Windows
一款.NET开源的Windows资源管理器标签页工具
一款.NET开源的Windows资源管理器标签页工具
|
28天前
|
弹性计算 开发框架 安全
基于云效 Windows 构建环境和 Nuget 制品仓库进行 .Net 应用开发
本文将基于云效 Flow 流水线 Windows 构建环境和云效 Packages Nuget 制品仓库手把手教你如何开发并部署一个 .NET 应用,从环境搭建到实战应用发布的详细教程,帮助你掌握 .NET 开发的核心技能。
|
15天前
|
SQL Java 数据库连接
JDBC编程安装———通过代码操控数据库
本文,教你从0开始学习JBCD,包括驱动包的下载安装调试设置,以及java是如何通过JBDC实现对数据库的操作,以及代码的分析,超级详细
|
2月前
|
数据库连接 数据库 C#
Windows下C# 通过ADO.NET方式连接南大通用GBase 8s数据库(上)
Windows下C# 通过ADO.NET方式连接南大通用GBase 8s数据库(上)
|
2月前
|
数据库连接 数据库 C#
Windows下C# 通过ADO.NET方式连接南大通用GBase 8s数据库(下)
本文接续前文,深入讲解了在Windows环境下使用C#和ADO.NET操作南大通用GBase 8s数据库的方法。通过Visual Studio 2022创建项目,添加GBase 8s的DLL引用,并提供了详细的C#代码示例,涵盖数据库连接、表的创建与修改、数据的增删查改等操作,旨在帮助开发者提高数据库管理效率。
|
18天前
|
存储 Oracle 关系型数据库
数据库传奇:MySQL创世之父的两千金My、Maria
《数据库传奇:MySQL创世之父的两千金My、Maria》介绍了MySQL的发展历程及其分支MariaDB。MySQL由Michael Widenius等人于1994年创建,现归Oracle所有,广泛应用于阿里巴巴、腾讯等企业。2009年,Widenius因担心Oracle收购影响MySQL的开源性,创建了MariaDB,提供额外功能和改进。维基百科、Google等已逐步替换为MariaDB,以确保更好的性能和社区支持。掌握MariaDB作为备用方案,对未来发展至关重要。
44 3
|
18天前
|
安全 关系型数据库 MySQL
MySQL崩溃保险箱:探秘Redo/Undo日志确保数据库安全无忧!
《MySQL崩溃保险箱:探秘Redo/Undo日志确保数据库安全无忧!》介绍了MySQL中的三种关键日志:二进制日志(Binary Log)、重做日志(Redo Log)和撤销日志(Undo Log)。这些日志确保了数据库的ACID特性,即原子性、一致性、隔离性和持久性。Redo Log记录数据页的物理修改,保证事务持久性;Undo Log记录事务的逆操作,支持回滚和多版本并发控制(MVCC)。文章还详细对比了InnoDB和MyISAM存储引擎在事务支持、锁定机制、并发性等方面的差异,强调了InnoDB在高并发和事务处理中的优势。通过这些机制,MySQL能够在事务执行、崩溃和恢复过程中保持
47 3
|
18天前
|
SQL 关系型数据库 MySQL
数据库灾难应对:MySQL误删除数据的救赎之道,技巧get起来!之binlog
《数据库灾难应对:MySQL误删除数据的救赎之道,技巧get起来!之binlog》介绍了如何利用MySQL的二进制日志(Binlog)恢复误删除的数据。主要内容包括: 1. **启用二进制日志**:在`my.cnf`中配置`log-bin`并重启MySQL服务。 2. **查看二进制日志文件**:使用`SHOW VARIABLES LIKE &#39;log_%&#39;;`和`SHOW MASTER STATUS;`命令获取当前日志文件及位置。 3. **创建数据备份**:确保在恢复前已有备份,以防意外。 4. **导出二进制日志为SQL语句**:使用`mysqlbinlog`
62 2