精华内容
下载资源
问答
  • 1、 数据库层:数据库这一层的设计模式是很清晰的,无乎只有3种方案:(1) 所有客户的数据都存放在一个数据库的同一套表中, 在表中增加Company_id等标志字段,表明该记录是属于哪个客户的。优点:数据源和数据库的...

    1、  数据库层:

    数据库这一层的设计模式是很清晰的,无外乎只有3种方案:

    (1)       所有客户的数据都存放在一个数据库的同一套表中, 在表中增加Company_id等标志字段,表明该记录是属于哪个客户的。

    优点:数据源和数据库的管理都比较简单。和原来的应用没有差别。

    缺点:数据权限比较复杂,增加程序的复杂性。如果应用比较复杂,很多数据表都需

    要加入客户标志字段,很多查询都需要包括该字段,会比较麻烦。如果有遗漏,、特别是查询条件中遗漏该字段,就会造成一个客户看到另一个客户的数据。

    (2)       每个客户独立一个数据库:

    在应用服务器中配制不同的数据源,或者使用不同的连接池。

    优点:不同客户的数据物理分离,安全性比较好。

    缺点:数据库连接的利用效率不高。Performance 问题会很大

    (3)       多Schema,单数据源

    这个方案基本是方案2的变种。同一个数据库下可以有多个Schema

    优点:除了方案2的优点以外,共享数据源或连接池,效率更高。

    缺点:和方案一比较起来,数据库连接池开销会比较大

    所有以上方案都是所有客户共享同一个应用(WAR或EAR)。

    这里我选择方案三,并结合了方案一,对于登陆/验证/权限,所有的客户共享一个Schema,而对于业务数据,则每个客户一个Schema.

    我做了200个不同的Schema,用户名和密码分别是demo1/demo1 到demo200/demo200,大家可以按照不同的用户名和密码登陆。

    这台机器就是一台式机,不是专用服务器,网络也是放在我家里的小区宽带上,是通过无线路由器上的网,所以网速可能不太稳定。

    后面几篇文章陆续写了实际的一些实现

    展开全文
  • 数据库这一层的设计模式是很清晰的,无乎只有3种方案: (1) 所有客户的数据都存放在一个数据库的同一套表中, 在表中增加Company_id等标志字段,表明该记录是属于哪个客户的。  优点:数据源和数据库的...

    1、  数据库层:

    数据库这一层的设计模式是很清晰的,无外乎只有3种方案:

    (1)       所有客户的数据都存放在一个数据库的同一套表中, 在表中增加Company_id等标志字段,表明该记录是属于哪个客户的。

          优点:数据源和数据库的管理都比较简单。和原来的应用没有差别。

    缺点:数据权限比较复杂,增加程序的复杂性。如果应用比较复杂,很多数据表都需

    要加入客户标志字段,很多查询都需要包括该字段,会比较麻烦。如果有遗漏,、特别是查询条件中遗漏该字段,就会造成一个客户看到另一个客户的数据。

    (2)       每个客户独立一个数据库:

    在应用服务器中配制不同的数据源,或者使用不同的连接池。

    优点:不同客户的数据物理分离,安全性比较好。

          缺点:数据库连接的利用效率不高。Performance 问题会很大

    (3)       多Schema,单数据源

    这个方案基本是方案2的变种。同一个数据库下可以有多个Schema

    优点:除了方案2的优点以外,共享数据源或连接池,效率更高。

    缺点:和方案一比较起来,数据库连接池开销会比较大

     

    所有以上方案都是所有客户共享同一个应用(WAR或EAR)。

     

     

    这里我选择方案三,并结合了方案一,对于登陆/验证/权限,所有的客户共享一个Schema,而对于业务数据,则每个客户一个Schema.

     

    我做了200个不同的Schema,用户名和密码分别是demo1/demo1 到demo200/demo200,大家可以按照不同的用户名和密码登陆。

     

    这台机器就是一台式机,不是专用服务器,网络也是放在我家里的小区宽带上,是通过无线路由器上的网,所以网速可能不太稳定。

    展开全文
  • 1、 数据库层:数据库这一层的设计模式是很清晰的,无乎只有3种方案:(1) 所有客户的数据都存放在一个数据库的同一套表中, 在表中增加Company_id等标志字段,表明该记录是属于哪个客户的。 优点:数据源和...

     

     

    1、  数据库层:

    数据库这一层的设计模式是很清晰的,无外乎只有3种方案:

    (1)       所有客户的数据都存放在一个数据库的同一套表中, 在表中增加Company_id等标志字段,表明该记录是属于哪个客户的。

          优点:数据源和数据库的管理都比较简单。和原来的应用没有差别。

    缺点:数据权限比较复杂,增加程序的复杂性。如果应用比较复杂,很多数据表都需

    要加入客户标志字段,很多查询都需要包括该字段,会比较麻烦。如果有遗漏,、特别是查询条件中遗漏该字段,就会造成一个客户看到另一个客户的数据。

    (2)       每个客户独立一个数据库:

    在应用服务器中配制不同的数据源,或者使用不同的连接池。

    优点:不同客户的数据物理分离,安全性比较好。

          缺点:数据库连接的利用效率不高。Performance 问题会很大

    (3)       多Schema,单数据源

    这个方案基本是方案2的变种。同一个数据库下可以有多个Schema

    优点:除了方案2的优点以外,共享数据源或连接池,效率更高。

    缺点:和方案一比较起来,数据库连接池开销会比较大

     

    所有以上方案都是所有客户共享同一个应用(WAR或EAR)。

     

     

    这里我选择方案三,并结合了方案一,对于登陆/验证/权限,所有的客户共享一个Schema,而对于业务数据,则每个客户一个Schema.

     

    我做了200个不同的Schema,用户名和密码分别是demo1/demo1 到demo200/demo200,大家可以按照不同的用户名和密码登陆。

     

    这台机器就是一台式机,不是专用服务器,网络也是放在我家里的小区宽带上,是通过无线路由器上的网,所以网速可能不太稳定。

     

    后面几篇文章陆续写了实际的一些实现

     

    在线 demo  http://www.spluss.cn/saas/

    展开全文
  • 优惠券数据库结构设计

    千次阅读 2020-05-05 10:29:39
    任务就是将概念结构设计阶段设计好的全局E-R图转换成DBMS产品所支持的数据模型(关系模型),并进行规范化和优化,然后为每个应用设计外模式实例:ER图转化成关系模型 eg. 借书人(借书证号,姓名,单位) 数据库...

    数据库的概念结构设计

    需求分析阶段所得到的应用需求应该首先抽象成信息世界的结构,才能更好地、更准确地用某一DBMS实现。
    实例:ER图的设计

    数据库的逻辑结构设计

    任务就是将概念结构设计阶段设计好的全局E-R图转换成DBMS产品所支持的数据模型(关系模型),并进行规范化和优化,然后为每个应用设计外模式。

    实例:ER图转化成关系模型
    eg. 借书人(借书证号,姓名,单位)

    数据库的物理结构设计

    数据库在物理设备上的存储结构和存取方法就称为数据库的物理结构。
    通俗数据库设计(4)物理结构设计

    例子

    实体属性

    优惠券活动

    1. 券活动id
    2. 券活动名字
    3. 券发布的时间
    4. 券有效天数
    5. 发行量
    6. 备注

    优惠券

    1. 券id
    2. 券名
    3. 券活动id
    4. 折扣率
    5. 有效期

    抵扣记录

    1. 券id
    2. 消费时间
    3. 门店
    4. 数量
    5. 备注<消费券使用情况简介>

    用户

    1. 用户id
    2. 券id

    实体间的联系

    优惠券活动 1:N 优惠券

    优惠券 1:1 优惠券抵扣记录

    优惠券活动 N:1 用户

    优惠券 N:1 用户

    用户 1:N 抵扣记录

    巨人肩膀

    数据库设计之概念结构设计---------E-R图详解

    展开全文
  • 这种类型的设计模式属于结构性模式。为子系统中的一组接口提供了一个统一的访问接口,这个接口使得子系统更容易被访问或者使用。 2.外观模式(门面) 包装模式 实例1: // 用户下单成功后,有那些操作? // 1.增加...
  • 外观模式(Facade),将外部与内部子系统的通信通过一个统一的门面对象进行。 由两部分组成: 门面角色:供外部调用,内部可能组装了多个子系统,多个方法。 子系统角色:子系统的方法也可以直接供外部调用。...
  • 1 Facade 模式的定义 为子系统中的一组接口提供一个一致的界面。即在一个项目中,把通用的部分接口抽离出来供各子模块使用。 2 应用实例 数据库 JDBC 的应用,log4j + slf4j 都是Facade的典型应用。在各个子模块...
  •  单例模式的逻辑:类里面声明一个静态的方法和变量,静态变量用来存储唯一的实例,静态方法作为类向的唯一的接口,并在里面做判断,当静态变量有实例时候直接返回,没有则new一个实例赋值在静态变量里面。...
  • 数据库系统概念

    千次阅读 2018-06-26 21:27:13
    数据抽象:视图层(外模式),逻辑层(模式),物理层(内模式)。 实例:特定时刻存储在数据库中的信息的集合称作数据库的一个实例。 模式:数据库的总体设计称作数据库模式。 物理数据独立性:应用程序如果不...
  • 数据库概述

    2020-09-11 22:17:31
    数据库系统设计员可在视图层、逻辑层和物理层对数据抽象,通过外模式、概念模式和内模式来描述不同层次上的数据特征 1、概念模式(又称模式) ①概念模式是对数据库中全部数据的逻辑结构和特征的描述,它由若干个概念...
  • 一个类只能创建一个实例对象,不管用什么方法都无法创建第2个对象, 比如,数据库类 单例设计模式的要求(三私一公) 一私:私有的静态的保存对象的属性 一私:私有的构造方法,阻止类new对象 一私:私有的克隆方法...
  • 确保一个类只有一个实例,且自动实例化向提供这个实例。 使用场景: 1.要求生唯一对象的场景 2.需求提供一个共享访问或者共享数据 3.创建一个对象需要消耗过多资源,如要访问IO 或数据库资源 4.需要定义大量...
  • PHP设计模式之单例模式

    千次阅读 2020-02-28 20:46:10
    单例模式设计(三私一公) 私有的静态的保存对象的属性 私有的构造方法 阻止类new对象 私有的克隆方法阻止类克隆对象 唯一创建对象的入口就是通过一个共有的静态方法 作用:减少内存消耗,如数据库...
  • 设计模式—单例模式

    2020-09-22 10:08:43
    单例模式的使用场景:用于严格要求只能有一个对象实例去进行所有操作的场合,比如常见的工具类,数据库的连接类等就应该被定义为单例类。 单例模式的实现 单例模式首先是不能向提供显式可见的构造方法,因此需要将...
  • 数据库:关系模型

    2020-06-13 17:51:07
    数据库模式数据库的逻辑设计 数据库实例:给定时刻数据库中数据的一个快照 关系:对应于变量 关系模式:对应于类型 关系实例:对应于值 超码:一组属性的集合,可以唯一标识一个元组 候选码:最小超码 主码:选中...
  • 设计模式之单例模式

    2019-03-26 16:51:11
    什么是设计模式? 针对于Java编程三大特点演变的一个编码风格。 定义: Singleton模式主要作用是保证在Java应用程序中,一个类Class只有一个实例存在。 在很多操作中,比如建立目录 数据库连接都需要这样的单线程...
  • 1-4数据库系统的结构

    2016-06-30 13:10:18
    1-4数据库系统的结构tags:数据库数据库系统模式的概念 模式是数据库中全体数据的逻辑结构和特征描述,它仅仅设计型的描述,不涉及具体的值。模式的一个具体值成为模式的一个实例。模式反应的是数据的结构及其...外模式
  • mysqli 数据库工具类

    2019-11-06 10:57:56
    文章目录mysqli 数据库工具类单例设计模式代码实现数据库初始化工作SQL执行方法 exec()SQL查询方法 query()SQL查询结果 fetchOne()SQL查询结果 fetchALL()SQL获取记录数 rowCount()完整代码 mysqli 数据库工具类 ...
  • Singleton模式主要作用是保证在Java应用程序中,一个类Class只有一个实例存在。 在很多操作中,比如建立目录、数据库连接都需要这样的单线程操作。 还有,singleton能够被状态化; 这样,多个单态类在一起就可以...
  • 设计模式实训教程》【PPT+类图与代码+样章】

    千次下载 热门讨论 2012-12-05 21:39:30
    3.2.3抽象工厂模式实例数据库操作工厂 3.2.4建造者模式实例之游戏人物角色 3.2.5原型模式实例之快速创建工作周报 3.2.6单例模式实例之多文档窗口 3.3实训练习 第4章结构型模式实训 4.1知识讲解 4.1.1结构型...
  • 主要用于减少创建对象的数量,以减少内存占用和提高性能, 它提供了减少对象数量从而改善应用所需的对象结构的方式。... 如果发现某个对象的生成了大量细粒度的实例,并且这些实例除了几个参数基本是相同的,如果
  • 这是因为在有些场景下对象的访问比较复杂,且需要一些额外的控制,这时如果直接new()出实例,并在调用端处理这些繁杂的细节,会增加系统的耦合。类似的场景有很多,比如远程访问、数据库访问、权限校验、负载均衡...
  • 关系的模式是指它的逻辑设计,而关系的实例是指它在特定时刻的内容。数据库模式实例的定义是类似的。关系的模式包括它的属性,还可能包括属性类型和关系上的约束,比如主码和码约束。 关系的超码是一个或多个...
  • PHP 设计模式与MVC

    2020-01-26 09:14:18
    一个类, 仅允许实例化一次,即仅允许创建一个实例,因此可以把构造函数私有化,不允许在类外实例化。 应用场景: 数据库的连接对象, HTTP请求, 游戏中的主角等 <?php class Db { private static $pdo = null; ...
  • 有一个实例的情况,比如窗口管理器,打印缓冲池,数据库连接和文件系统,它们都是原型的例子。 典型的情况是,那些对象的类型被遍及一个软件系统的不同对象访问,因此需要一个全局的访问指针,这便是众所周知的...
  • 4.5 示例UNIVERSITY的EER模式设计选择和形式化定义 78 4.5.1 UNIVERSITY数据库示例 78 4.5.2 特化/泛化的设计选择 79 *4.5.3 EER模型概念的形式化定义 80 4.6 其他表示法的示例:UML类图中的特化/...
  • 这里写目录标题工厂模式单例模式(懒汉式、饿汉式)适配器模式外观模式代理模式包装模式(装饰器模式)桥接模式模板方法模式策略模式观察者模式责任链模式 工厂模式 定义:将工厂变成一个抽象类,在里面定义一个纯虚...
  • Singleton模式主要作用是保证在Java应用程序中,一个类Class只有一个实例存在。 在很多操作中,比如建立目录 数据库连接都需要这样的单线程操作。 还有, singleton能够被状态化; 这样,多个单态类在一起就可以作为...

空空如也

空空如也

1 2 3 4 5 ... 15
收藏数 299
精华内容 119
关键字:

数据库外模式设计实例