我们踩过坑后之表结构设计要领

标签: 结构 设计 | 发表时间:2015-10-08 09:50 | 作者:lixuguang
出处:http://www.iteye.com

我们踩过坑后之表结构设计要领:
0,表注释,字段注释不能缺少,并且要清晰明了。
   表注释必须体现以下几点:
       ①表属于哪个模块;
       ②表的用途是什么;
       ③是否引用了其他表的主键作为外键;
       ④主键被那几个表作为外键依赖;
   字段注释必须体现以下几点:
       ①字段的含义
       ②字段的类型,长度,默认值,可否为空。尤其长度,不能随便写上需要调查最长最短长度。
      
1,状态类字段严格控制,并且涉及到状态流转的,必须有完整的状态流转时间对应表以记录状态变化的时间。
   注意:状态累字段的修改增加等一定要与相关开发同事沟通,避免出现问题。

2,禁止一切物理删除。数据删除采用update的办法。(特殊情况除外)

3,以下几个字段每个表必须要有,且类型必须一致:
   创建时间 create_time datetime----表示当前记录第一次insert的时候时间。
   创建人   creator varchar(20)----存储用户名而非用户ID
   更新时间 update_time timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP----当前记录没更新一次时间,改字段随更新而更新
   更新人   updater varchar(20)----存储用户名而非用户ID
   删除标志 is_del int ----1,未删除,2已删除,3,彻底删除 默认1 not null
   特殊情况下的表可以不需要这5个字段,但需要跟DBA进行确认(例如有单独的日志记录表记录该表数据变化等)。
  
4,字段原则上not null,并给出默认值以及默认值含义,进来避免null的设计。

5,引用外键的时候一定要标明来自于哪个表的主键,并且建立表的时候,不能建立外键约束。
   适当的时候,请建立一些冗余字段,以避免多表的关联查询。但是冗余字段要注意标明注释来源,并且在更新的时候要注意保证数据一致。
  
6,日志记录类的表设计原则上以精简为主,越简单越好。如果有可能尽量使用mongodb或是redis等nosql数据库设计大日志记录表。
   如果可能,每个模块的设计自己一套完整的日志记录表,而非每个功能设计俩表,一个存业务一个存日志。
  
7,尽量避免在表中尤其是频繁查询的表中建立text等大字段。以下场景必须分开建立表:
   表中可能会含有text等大字段,但是查询的时候,几乎不会查询该字段。
  
8,建表的时候就考虑根据实际业务情况考虑好索引的建立,原则上一个表的索引不要超过3个。但是千万不要吧索引建立到text,varchar>30的字段上。

9,建表时评估一下表的数据量,如果估计超过500万条记录,由DBA协助完成表分区等设计工作。

10,设计表的时候如果有一些应用,有一些大的查询,需要关联好几个表出报表类型,可以考虑将查询结果设计成一张宽表(or 视图),在不考虑实时查询前提下
    通过job或是etl的方式处理数据。(即报表类应用走数据平台)



已有 0 人发表留言,猛击->> 这里<<-参与讨论


ITeye推荐



相关 [结构 设计] 推荐:

界面设计中的结构设计

- - 博客 - 伯乐在线
构建界面视觉层级的元素有颜色的显著程度,图片、文字的尺寸大小,还有最基础的,内容的组织结构. 结构设计是指对界面内容进行分组,对界面中的信息、数据进行设计使之结构化呈现的过程. 好的结构设计能使界面信息传达更加清晰、快捷. 这是最常见的分组方式,在UI设计中历史悠久. 不管是线、框,还是背景色,都是可见的边界,本来引入这些可见边界的目的就是为了使信息的呈现更加清晰,但是这些视觉元素的加入也在一定程度上增加了界面的凌乱感.

导航设计中的信息结构

- 蕗 - 互联网的那点事
在进入今天的主题之前,我们先来探讨导航的重要性,并分析一下门户网站中导航的表现. 导航直接影响到公司的财政收入. 导航不光只是提供信息获取的途径,它的设计优劣会直接影响到整个公司财政收入. 下面我们看一个例子(以下内容来自alibaba李凡的《设计师的商业意识》):. alibaba大致的广告价格.

我们踩过坑后之表结构设计要领

- - 互联网 - ITeye博客
我们踩过坑后之表结构设计要领:. 0,表注释,字段注释不能缺少,并且要清晰明了.    表注释必须体现以下几点:.        ①表属于哪个模块;.        ②表的用途是什么;.        ③是否引用了其他表的主键作为外键;.        ④主键被那几个表作为外键依赖;.    字段注释必须体现以下几点:.

既然有傻瓜式的结构设计软件了,为什么还要在大学里学习力学、混凝土结构这些专业课?

- - 知乎每日精选
算是自问自答吧,请原谅我絮叨一点. 在科幻小说界的传世巨著《基地》三部曲中,阿西莫夫描绘了一幅很巧妙却又很意味深长的画面. 基地,地盘小,武装弱,但却在虎视眈眈的强权势力中游刃有余,甚至某种意义上,是基地凌驾于这些强权势力之上. 基地对周边势力的控制,靠的不是大炮巨舰的武力威慑,也不是给钱给物的经济贿赂,而是靠着穿了“宗教”马甲的“科技”.

建筑师对于建筑结构设计需要了解到什么样的程度?

- - 知乎每日精选
鉴于今天发生的一件事,使我想要回答这个问题. 今天上午,有施工方致电告诉我,我所设计的商业楼,其上一个很帅的长达9.3米的外墙长高窗由于在框架梁之外,而结构上并没有设计过梁或挑梁,也没有任何处理,那么,所以,对不起,我们没办法做. 该房子设计于08年,种种原因现在才得以实施,参与的结构师早已离职. 在一翻和善滴协商之后,我把侧墙的窗户改大而不得不把这个长窗取消,转头回来就面对这个已被邀请很久的话题,又看到激烈的讨论.

JBPM表结构

- - CSDN博客综合推荐文章
      JBPM全称——Java  Business PrcessManagerment(业务流程管理),它是覆盖了业务流程管理、工作流、服务协作等领域的一个开放的、灵活的、易扩展的可执行流程语言框架.        (1)它的业务逻辑定义没有采用目前的一些规范,而是采用了它自己定义的Jboss Jbpm Process Definition Language(jpdl).

Linux 文件结构

- Shiina Luce - OSMSG
想了解 Linux 文件系统树形结构,却又不愿翻阅 FHS 的朋友,可以参考 skill2die4 制作的这张简图. 此图算是 FHS 的图形化版本,简要的说明了 Linux 系统中各个目录的用途及层级关系,适合初学者使用参考. 不过其中较新的如 /run 目录并未在其中出现. 做为参考,这是 Fedora 16 Beta i686 上的文件结构:.

TCP报文结构

- - 互联网 - ITeye博客
一、TCP报文结构如下:.  固定首部长度为20字节,可变部分0~40字节,各字段解释:. source port number:源端口,16bits,范围0~65525. target port number:目的端口,16bits,范围同上. sequence number:数据序号,32bits,TCP 连接中传送的数据流中的每一个字节都编上一个序号.