一個簡單系統的設計之爭

作者: 蔣彪  來源: CSDN  發布時間: 2010-09-25 14:25  閱讀: 1226 次  推薦: 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
 
標簽:系統設計
 
 

文章列表

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()