zoukankan      html  css  js  c++  java
  • 数据库设计思考

    一:没有完美的数据库设计,只有符合业务的数据库设计!

    二:我们的数据库设计,在遵守标准(三大范式)的同时也要考虑客户的体验!

      有用户才有天下!

    三:数据库设计时必须要做的

               1.需求的分析;

               2.考虑需求可能的变更(预留设计);

    四:数据库设计中具体要注意的几点;

     1.凡是用户输入的不能作为主键

     主键是唯一的,一般不能让客户做任何操作;

     2.凡是有业务意义的不能作为主键

         既然是具有业务意义,客户随时都有可能提出这个业务,要求修改业务,也会有变动的可能!

    3.除非确定是有必要的字段,其他都允许为空;

       设计数据库时,约束简单点最好,约束多则在系统中开发时要注意的就多,开发效率相对会底,因为系统是可以通过验证辅助完成这些约束的!

    4.不能缺少时间或日期字段、并预留备注字段

    5. 业务的时效(时间有效)性;

    6.数据的采集宁滥毋缺  

    7.预先计划

      比如考虑到用户可能会误操作,然后又要求维护人员恢复数据,需要对表进行软删除(逻辑删除,也就是增加一个IS_DELETED字段,0表示正常,删除操作就是将该字段设置为1) 

    五:字段是否允许为空的思考

      为空的选项,就是为了表示未知的情况。

      如果为空,查询条件就必须处理为空的情况,否则会出现一些很奇怪的问题。也就是说,几乎所有的判断都必须加上 is not null 或者时  is null 的判断。 其实在部分情况下可以使用默认值。

    六:Drop Table

       要增加数据列的话,不好采用Drop Table重新Create Table,因为会把数据也删除掉,最好用Alter语句

    alter table OrderMaster add IsMonthly int(11) not NULL DEFAULT 0;

    alter table OrderSearchSummary add IsMonthly int(11) not NULL DEFAULT 0;

  • 相关阅读:
    poj1273
    JavaSE入门学习23:Java面向对象之构造方法
    NOI 2015 滞后赛解题报告
    LuaInterface简单介绍
    解决在onCreate()过程中获取View的width和Height为0的4种方法
    函数指针和指针函数
    Quartz-中断正在执行的任务
    servlet3.0获取参数与文件上传代码示例
    Servlet学习:(三)Servlet3.0 上传文件
    layui 批量上传文件 + 后台 用servlet3.0接收【我】
  • 原文地址:https://www.cnblogs.com/peterYong/p/6556560.html
Copyright © 2011-2022 走看看