zoukankan      html  css  js  c++  java
  • 设计合理通用的数据库表

    第一博,谈谈本人愚见,若有不适请不吝赐教:数据库表在程序开发设计中占相当重的分量,一个好的数据表设计能给开发带来极大便利,看懂并吃透一个项目远比自己做好一个难的多,做过二次开发的朋友们都知道,刚进公司或者从别人手中接过来一个成品,让你在做好的基础上增加或者修改些功能的话!你就必须首先了解项目的业务逻辑,而业务逻辑直接和数据库关联,所以你还是先得了解数据库设计,了解各表之间的关系,然后在去调试程序,结合数据看看他到底做了些什么事情,不管是二次开发还是开发一个新项目!多花点时间在数据库设计上是有必要的!数据库设计的好坏直接关系到你对项目业务的一个掌握情况!当然也有的在不断做不断改数据库的情况,那是因为你还不是很熟悉整体的业务,当你做好一个软件而且投入到组织,企业或者工厂用的时候,基本能够满足别人的需求的时候,那就够了!

    不要过多的依赖存储过程 (当然有的时候还是很有必要的)

    1、存储过程的可移植性差,过多的采用存储过程也是个麻烦,试想从sqlserver移植到oracle数据库,那很多函数都不一样,那存储过程改起来也麻烦。

    存储过程更新升级维护困难 存储过程的更新和程序的更新不能达到一致

    存储过程没有版本控制 我们改了但是错了的话要还原到之前的样子就困难了

    存储过程调试不是很方便

    数据库字段名改名 编译后的存储过程没有提醒的功能,字段不能及时更新

    通常数据库表设计理念

    遵循基本的三大范式 你懂的!

    数据库只用来存储数据  别把过大的压力丢给数据库  别用过多复杂sql语句来进行运算

    不要把过多的字段放在一个表里面,根据查询需求能拆分尽量拆分

    设计用户表字段时,关联到权限的时候要有是否可读可写可删除 isread,iswrite,isdelete字段

    数据表名和字段名命名规范,达到一看就懂的地步

    字段类型是什么就定义什么 比如时间就定义为datetime,不要用varchar

    系统中的数据是不是很重要,如果很重要,在删除的时候就不要真的删除,添加删除标志isdelete,我们在查找的时候就根据标志来查询就可以了

    数据是否有效isenable 一般都要通过审核才能看到

    排序字段sort  设置显示顺序

    重要数据是谁删除的谁修改的字段createid  createname  createdate  editid  editname editdate,当出现问题的时候找谁,很有必要

    有必要的给字段加默认值  可以不输入的数据尽量不输 谁愿意输入很多东西啊

    让可以为空的数据 在设计的时候让字段允许为空

    备注字段note 给客户留有余地 不同的客户需求都不一样 我们很难满足所有的用户的需求

    数据库的优化

    3、字段类型 是什么类型就是什么类型 是时间类型就是datetime 别用varchar

    模糊查询最好不要用到两个以上的like语句,如果有int 和string的模糊查询,int用“=”去匹配,string用like去匹配

    主键加索引,对于经常查询的条件加上索引,如 where后面的条件

    有什么好的意见或者建议 多给我留言  如果喜欢的话别忘按“推荐”!谢谢!我的第一次给了你们

  • 相关阅读:
    locust与jmeter在压测时的比较
    通过python异步通讯方式构建高并发压力测试工具
    开博寄语
    【linux】【root权限的掌控】
    【linux】【qt5界面】【系统托盘图标的实现】
    【win】【qt5】【本地网络相关信息,诸如ip,mac等】
    【win】【qt5】【qt汉化:输入框之右键英文变中文】
    【linux】【qt5】【qt程序防多开设置,通过设置共享内存实现,超短代码,超级有效】
    【qt】【QString的诸多操作】
    【linux】【qt5】【将linux下的qt程序打包发布(完全适用于中标麒麟)】
  • 原文地址:https://www.cnblogs.com/gaole/p/sql.html
Copyright © 2011-2022 走看看