zoukankan      html  css  js  c++  java
  • 多种数据库的情况



     

    1、 DAL并不是放在一个DLL里面,而是分别放在各个的DLL里面,需要哪个数据库就使用哪个DLL文件。

    2、 DAL里面的命名空间、类名、参数类型都是一样的,至少主要功能都是一样的。

    3、 分页控件还没有考虑好,现在只是针对MSSQL来做的,其它的数据库还没太考虑。

    4、 如果情况特殊分页控件也还是可以“分别”对待的,就是若干个数据库对应一个分页控件。另外一个数据库对应另一个分页控件。

     
    =========================

    >>如果有M个业务需要有分页功能,有N种数据库需要支持,那么,你就得写M×N份代码

    这个是错误的。

    先说一下我的情况:

    webform ,一个数据库(MSSQL)。多少个业务需要分页这个没有必要考虑。

    网站写了不少了,后台管理也写了不少了,但是不管有多少个页面需要分页,都是一样的。

    还是我上面写的那个

    ======
    Page1.SqlTableNames = "SD_Product"; //表名
    Page1.SqlColumns= "clo1,clo2,..."; //显示的字段
    Page1.SqlPageSize = 8; //一页的记录数
    Page1.SqlOrderColumn = "ProductID"; //排序字段
    Page1.SqlOrderColumnKind = "int"; //排序字段类型
    Page1.IsOrderDesc = true; //升序or降序
    Page1.SQLQuery = "" ; //查询条件
    ======

    在分页控件里面可以这样组合SQL语句,

    "select top " + SqlPageSize + " " + SqlColumns " from + SqlTableNames + " where " + SQLQuery + " order by  " + SqlOrderColumn + IsOrderDesc

    注意:
    1、这只是一个实例,实际上要判断是不是有查询条件,没有的话就不需要 加 where 了。
    2、上面的是第一页的SQL语句,其他的根据你的算法来组合。
    3、这里就是图上面的组成SQL语句的地方,很显然一种数据库只需要一个。

    这样的方法你一万个业务也是一样的,只是一种情况,不会出现你所说的 M * 1 的情况。就是 1 个。


    ------------------

    下面再来看看多个数据库的情况。

    应该不用多说了吧,你所说得 M×N 其实就是 N 。你的数据库类型在多也不会超过20个吧。


    PS:
    对了分页是不需要存储过程的,只是在分页控件里面根据属性(外加分页算法)来组合SQL语句。

    =======================

    其实全部的组合式这样的

    分页算法 * 2 * 数据库类型

    一般情况 : 2 * 2 * N = s

    如果n<20 的话,那么 s < 80。

    分页算法 为什么会取2 呢?一个是第一页的算法,另一个是任意页的算法。当然也可以再加一个最后一页的算法。

    分页算法后面的 “2” 是甚么意思呢?

    分页算法可以不止一个,针对不同的情况可以使用不同的算法,简单的情况就使用高效一点的算法,复杂的情况就要适当放弃一下效率了。

    最简化的情况  1 * 1 * N = N 。 有几种数据库就只有几个 “组合SQL语句”的地方。

    最复杂的情况  3 * 3 * N = s = 9N。

  • 相关阅读:
    Codeforces Beta Round #92 (Div. 2 Only) B. Permutations 模拟
    POJ 3281 Dining 最大流 Dinic算法
    POJ 2441 Arrange the BUlls 状压DP
    URAL 1152 Faise Mirrors 状压DP 简单题
    URAL 1039 Anniversary Party 树形DP 水题
    URAL 1018 Binary Apple Tree 树形DP 好题 经典
    pytorch中的forward前向传播机制
    .data()与.detach()的区别
    Argparse模块
    pytorch代码调试工具
  • 原文地址:https://www.cnblogs.com/jyk/p/652942.html
Copyright © 2011-2022 走看看