数据库实际上是系统逻辑在磁盘上的固化,是信息河流的蓄水池。

数据库的表应有如下类型

1)类表、配置表。作为业务逻辑基本的名字,状态的定义,作为构建逻辑世界的最基础框架,解释框架的框架。

特点,数据不会很多,表也不会很多,大部分状态和类用不着专门用表来处理。

2)业务对象表。业务流程引擎中出现和活跃的各种对象。比如商城系统中可能会出现的订单表,商品表,顾客表,等等,含业务主体或业务主体的组陈部分。有时类表与业务表很难绝对区分,像淘宝的一切类别都是属性的做法,实际上类表就是业务表。

3)关系表,扩展表。有时实体数据相关的业务逻辑会不断变化,这是把关系字段固化在实体表中就是非常笨拙的做法,频繁的增删实体表中的字段,很容易因考虑不周导致数据的丢失或存储空间的浪费,另外有时有些业务只是临时上马,有些程序员也只是临时任用,随意在实体表中增加字段(或更危险,删除字段)长久将导致难以理解的设计,所以,应保持实体表的业务功能和字段的稳定,尽量把实体表中的关系设计到专门的关系表当中去,另外对于新增的业务,尽量使用专门的扩展表,即,业务用到字段另建一表存储,用字段(这里可以用关联字段)关联实体表主键,关系可以一对一,多对一,一对多。这样数据库表结构与业务进化的层次关系将非常清楚,便于进行管理和控制。

4)性能表。广义上来说,触发器和视图是为了简化业务逻辑而产生的,存储过程是为了提高性能而产生的。会有一些表,比如汇总表,其实现有的表足以提供相应的数据,但会增加服务器负担,因而专门建表,存储计算的中间结果。当然,实际应用场合是千变万化的,有时会在扩展表或关系表之间建立冗余字段,减少关联查询,有时会为了统计用户ip及业务以辅助负载均衡。总之,这些与业务直接关系比较少,或是冗余设计,为了系统性能和稳定性而加的注脚,这些表是为中间表(并不对用户输出结果或影响结果的输出),性能表。

sql表设计的更多相关文章

  1. 优化一个奇葩表设计上的全表扫描SQL

    之前在一个比较繁忙的系统抓到的耗时长.消耗CPU多的一条SQL,如下:SELECT * FROM Z_VISU_DATA_ALARM_LOG TWHERE TO_DATE(T.T_TIMESTR, ' ...

  2. 走向DBA[MSSQL篇] 针对大表 设计高效的存储过程【原理篇】 附最差性能sql语句进化过程客串

    原文:走向DBA[MSSQL篇] 针对大表 设计高效的存储过程[原理篇] 附最差性能sql语句进化过程客串 测试的结果在此处 本篇详解一下原理 设计背景 由于历史原因,线上库环境数据量及其庞大,很多千 ...

  3. mysql系列十一、mysql优化笔记:表设计、sql优化、配置优化

    可以从这些方面进行优化: 数据库(表)设计合理 SQL语句优化 数据库配置优化 系统层.硬件层优化 数据库设计 关系数据库三范式 1NF:字段不可分; 2NF:有主键,非主键字段依赖主键; 3NF:非 ...

  4. 数据库表设计时一对一关系存在的必要性 数据库一对一、一对多、多对多设计 面试逻辑题3.31 sql server 查询某个表被哪些存储过程调用 DataTable根据字段去重 .Net Core Cors中间件解析 分析MySQL中哪些情况下数据库索引会失效

    数据库表设计时一对一关系存在的必要性 2017年07月24日 10:01:07 阅读数:694 在表设计过程中,我无意中觉得一对一关系觉得好没道理,直接放到一张表中不就可以了吗?真是说,网上信息什么都 ...

  5. MySql数据表设计,索引优化,SQL优化,其他数据库

    MySql数据表设计,索引优化,SQL优化,其他数据库 1.数据表设计 1.1数据类型 1.2避免空值 1.3text类型优化 2.索引优化 2.1索引分类 2.2索引优化 3.SQL优化 3.1分批 ...

  6. oracle性能优化之表设计

    数据库优化的目标无非是避免磁盘I/O瓶颈.减少CPU利用率和减少资源竞争.为了便于读者阅读和理解,笔者参阅了Sybase.Informix和Oracle等大型数据库系统参考资料,基于多年的工程实践经验 ...

  7. Oracle优化-表设计

    前言 绝大多数的Oracle数据库性能问题都是由于数据库设计不合理造成的,只有少部分问题根植于Database Buffer.Share Pool.Redo Log Buffer等内存模块配置不合理, ...

  8. Oracle数据库表设计时的注意事项

    表是Oracle数据库中最基本的对象之一.万丈高楼从平地起,这个基础对象对于数据库来说,非常重要.因为其设计是否合理,直接跟数据库的性能相关.从Oracle数据库菜鸟到数据库专家这个过程中,在表设计与 ...

  9. (转载)数据库表设计-水电费缴费系统(oracle)

    水电缴费管理系统数据表设计 SQL建表脚本: 1 --建表 2 --管理人员表 admin 3 create table admin( 4 admin_id varchar2(3) not null, ...

随机推荐

  1. laravel更新时区:

    config/app.php 'timezon'='UTC'  或 'timezone'='Asia/Shanghai'

  2. HDU 4791 Alice's Print Service 思路,dp 难度:2

    A - Alice's Print Service Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & ...

  3. Visual Studio build tools 安装出错的一种解决办法

    一般是安装包丢失或损坏,那么我么可以用离线下载的方式来先行下载. 用 -h 看下帮助 主要是Layout参数. 下载完,到下载目录安装吧.

  4. Flask初级(七)flash模板循环,判断

    Project name :Flask_Plan templates:templates static:static 继续前面的代码 修改Flask_Plan.py @app.route('/') d ...

  5. 软工作业No.6 甜美女孩第四周

    各成员在Alpha阶段认领的任务 成员 Alpha阶段认领的任务 整个项目预期的任务量 曾祎祺 安排每日任务,每晚总结 16% 邓画月 基础2048+自定义 16% 梁佩诗 负责界面 16% 何颖琪 ...

  6. Chrome 应用推荐 - Shortcuts for Google™ 3.4.1

    Choose from 200+ Google™ services to show up as buttons in a space-saving popup. Official Firefox ex ...

  7. 1.学习dubbo

    1.安装虚拟机 http://www.cnblogs.com/yun965861480/p/6246396.html 2.配置网络 http://www.cnblogs.com/yun96586148 ...

  8. View的事件拦截机制浅析

    为什么要去分析view的事件 记得上周刚立的flag就是关于view的事件机制.那现在我来说说我对view的感受.关于view的事件,百度google一搜.一批又一批.但是能让人理解的少之又少.换句话 ...

  9. [NLP] TextCNN模型原理和实现

    1. 模型原理 1.1 论文 Yoon Kim在论文(2014 EMNLP) Convolutional Neural Networks for Sentence Classification提出Te ...

  10. Redis服务器搭建/配置/及Jedis客户端的使用方法

    摘要 Redis服务器搭建.常用参数含意说明.主从配置.以及使用Jedis客户端来操作Redis Redis服务器搭建 安装 在命令行执行下面的命令: $ wget http://download.r ...