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

数据库的表应有如下类型

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. 获取URL的数据

    <!doctype html><html><head><meta charset="utf-8"><meta name=&qu ...

  2. POJ 2663 Tri Tiling 矩阵快速幂 难度:3

    Tri Tiling Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 7841   Accepted: 4113 Descri ...

  3. MySQL 5.7 分区表性能下降的案例分析

    转载自:https://mp.weixin.qq.com/s/K3RpSBAIWFwGCIWyfF0QPA 前言:希望通过本文,使MySQL5.7.18的使用者知晓分区表使用中存在的陷阱,避免在该版本 ...

  4. 玩转X-CTR100 l STM32F4 l DRV8825 A4988 步进电机控制

    我造轮子,你造车,创客一起造起来!塔克创新资讯[塔克社区 www.xtark.cn ][塔克博客 www.cnblogs.com/xtark/ ]      本文介绍X-CTR100控制器控制步进电机 ...

  5. GMTcolor

    http://gmt-tutorials.org/coloring_topography.html gmt grdcut topo15.grd -R -Gcut gmt grdgradient cut ...

  6. php and mysql 常用api函数

  7. c# 进程调用exe

    using System; using System.Collections.Generic; using System.ComponentModel; using System.Diagnostic ...

  8. cocos2d-x中用到的一些宏

    最近我们的cocos2d-x游戏项目已经进入了正式开发的阶段了,几个dev都辛苦码代码.cocos2d-x还是一套比较方便的api的,什么action啊.director啊.ccpoint啊都蛮便捷的 ...

  9. C++ 泛型 编写的 数据结构 栈

    平时编程里经常需要用到数据结构,比如  栈和队列 等,  为了避免每次用到都需要重新编写的麻烦现将  C++ 编写的 数据结构   栈   记录下来,以备后用. 将 数据结构  栈   用头文件的形式 ...

  10. I.MX6 Ar8031 device register hacking

    /***************************************************************************** * I.MX6 Ar8031 device ...