您的位置:知识库 » 软件设计

一个简单系统的设计之争

作者: 蒋彪  来源: CSDN  发布时间: 2010-09-25 14:25  阅读: 1200 次  推荐: 1   原文链接   [收藏]  

1.    前言

  一个朋友最近在做一个小项目,想让我去评审评审设计,于是我就去听了听他们的设计,同时提出了自己的一点思路,发现了一点有趣的事情。

  抛开业务,这个系统要干的事情其实很简单:

  a.       将常用的SQL保存在DB服务器上

  b.       做一个web画面,让操作员得以访问SQL列表

  c.       在web画面上,可以针对选择的SQL,填写参数,并且交付执行

  d.       将SQL执行得到的结果数据,做成execl格式传给web页面

2.    不同的设计思路

  2.1   我朋友的设计思路

  • 在数据库中create一个表,将所有常见的SQL都已字符串的方式存在这个表中
  • 在前台画面,用下拉框的方式展现这个表中所有的SQL
  • 在前台上输入参数,传递到java中,拼到SQL字符串中,然后丢到丢到DB中执行
  • DB中执行完得到的数据结果集在java中被处理,并且按照格式生成execl(用第三方API),最后被传递到前台

  2.2   我自己的设计思路

  • 写一个PL/SQL模板,专门用以执行这些SQL,同时和我朋友的思路一样,把这些SQL存到数据库中去
  • 在前台画面,用下拉框的方式展现这个表中所有的SQL
  • 在前台上输入参数,传递到PL/SQL模板中,由PL/SQL去调用表中的SQL,填上参数,在DB中执行
  • DB中得到的数据集,用PL/SQL的方法生成CSV文件,存放在服务器的temp文件夹中
  • 前台web层,从服务器的temo文件夹中读取该CSV文件

3.    两个设计思路的比较

  每个架构都有自己存在的理由,没有所谓的最好也没有所谓的最差

  我朋友的设计 我自己的设计
性能 Java处理这种大批量数据,还要生成execl~~想起来就可怕 性能上肯定是PL/SQL比较优秀
易扩展 三层的设计,理论上说起来易扩展一点,注意!是理论上 基本上没什么美丽的架构
维护性 插入新的SQL可以用画面来实现 插入新的SQL可以用画面来实现
安全性 因为可以直接执行DB中的SQL,其实不是很安全的 因为有一个专门的PL/SQL来执行SQL,应该可以屏蔽掉java代码层的不安全因素
1
1
标签:系统设计

软件设计热门文章

    软件设计最新文章

      最新新闻

        热门新闻