数据库设计走查表(为thinker_csai所原创,版权所有)

2024-03-30 22:48

本文主要是介绍数据库设计走查表(为thinker_csai所原创,版权所有),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

前期准备
    1    概念层次的ER图和数据库定义书准备齐全           
    2    ER图关联简洁           
    3    ER图结构清晰           
    4    ER图实体个数适中           
    5    ER图无重复冗余           
    6    存在原有系统的情况下,对旧系统的数据库进行了整理,本次设计中保留原有数据库的设计优点           
    7    存在原有系统的情况下,注意原有数据库系统中一些忽略的问题           
    8    存在原有系统的情况下,进行了数据库方面的设计对比           
    9    设计采用了CASE工具           
    10    数据字典完备           
    11    设计时考虑了将来哪些数据字段可能会发生变更           
    12    设计时考虑了不同国家,地区可能存在的字段和字段格式           
    13    设计时考虑了数据库的版本标识           
    14    设计时考虑了将来的数据挖掘和分析需求           
    15    使用英文而不是其它语言,编码来作为设计语言           
    16    存在一数据库标识机制来反映数据库的当前版本和相关配置信息           
    17    数据库设计时考虑到了备份的安全机制           
    18    数据库设计时尽量不考虑取值CHECK,有关CHECK的东西通过页面输入检查来解决   
表设计   
    19    实体有主键或有外键,或二者兼备           
    20    多对多关系被映射为三张基本表           
    21    基本表的字段不能再分解           
    22    基本表的数据均来自于用户人工输入或系统设定           
    23    基本表结构稳定,短期之内不再变化           
    24    基本表尽量满足3范式,符合2范式           
    25    根据用户统计,时间统计等统计需求建立中间表           
    26    临时表是临时的           
    27    表个数足够精简(多字段分表情况例外)           
    28    对于多值字段采用了创建子表的做法或预留了足够的字段来存储不同的值           
    29    表中存在合理的派生性冗余字段或无冗余字段           
    30    表中字段足够精简,不存在重复性冗余字段           
    31    有多种权限设计的时候采用用户-权限设计方式           
    32    表设计包括了管理员(用户)的账号管理设计   
数据库   
    33    数据库命名使用小写英语字母, 数字和下划线,无其他字符       
    34    数据库命名长度小于20位       
    35    数据库命名采用项目名或产品名称命名       
    36    数据库中的所有表字符集统一       
    37    数据库中对象命名见名知意       
    38    数据库对象的命名不使用保留关键字       
    39    数据库设计考虑到了事务机制       
    40    数据库设计考虑到将来可能存在的异种数据库迁移       
    41    数据库设计时考虑到了审计追踪机制(警告等)
表   
        42    组合主键的字段数量不超过3个   
    43    采用了系统自增字段作为主键   
    44    不同表的同一意义的字段名称和类型一致(特别是外键场合)   
    45    为关联字段创建外键   
    46    所有键取值唯一   
    47    外键是关联唯一的字段   
    48    使用商务规则约束数据完整性   
    49    表的id字段和name字段命名时采用表名_id(name)的形式   
    50    不存在只有写入没有读取的表   
    51    不用可能被更新或经常更新的字段作为主键   
    52    表设计不存在级联性删除   
字段   
    53    字段与画面项目能够一一对应(部分标识符字段和系统设定字段除外)           
    54    索引是多值字段           
    55    索引是单一字段           
    56    字段取值符合域定义           
    57    字段名称见名知意           
    58    多个表中出现同一类型字段用表前缀来标识           
    59    字段的类型和长度能够满足字段的值的最大限量           
    60    文本字段有充足的余量对应可能的长度变更           
    61    数字字段考虑了充足的余量和精度对应可能的长度或精度变更           
    62    不给MEMO(Mysql TEXT类型)之类的大字段建索引           
    63    为每种查询都建立索引           
    64    加一个标识更新时间的Datetime字段update_time,不使用mySQL 的timestamp类型。           
    65    加入一个表示记录插入时间的时间字段create_time, datetime           
    66    布尔值一律为INTERGER类型           
    67    有小数的字段使用Integer, 而不用float 等字段           
    68     普通时间字段使用Integer 或者Datetime           
    69     如果报表中可能分别按年,月,日进行排序和分组。则把时间字段分成不同的年月日字段           
    70    支持多国, 则数据库中必须存格林威治时间           
    71    不需要区别NULL和空字符串的地方,数据表设计时标上NOT NUL           
    72    用程序逻辑控制Default值, 而不是让数据库控制默认值           
    73    表中采用了DEL_FLAG字段标明删除           
    74    表中采用了IS_VALID(CANCEL_FLAG)标明有效性           
    75    采用了存放路径而不是存放图片(文件)本身的方式来保存图片数据或文件数据           
    76    Password只存单向加密过的密码, 而不是密码本身
"存储过程-视图-触发器"
        77    针对客户的特定应用采用了视图机制           
    78    采用了常规的存储过程来替代和简化客户程序代码的开发           
    79    少用触发器,多用存储过程           
    80    缺乏约束的数据库系统中,采用了触发器用来加强参照和数据完整性
优化   
    81    计算复杂时,以文件形式处理后才追加至数据库中而不是在数据库中直接计算           
    82    表记录字段太多时,采用垂直分割(超过80个以上)           
    83    表记录太多时,采用水平分割(分表)           
    84    SQL语句符合“先投影后连接再更新”的优化规则           
    85    所有SQL语句都充分地得到优化           
    86    数据库管理系统参数均得以优化           
    87    支持数据库的硬件指标符合项目需求           
    88    优化设计过程中考虑了“程序优化”,“数据库优化”和“系统优化”三个层次的优化           
    89    分布式数据库设计时充分考虑了80-20规则           
    90    XXXX数据库时使用XXXXX作为数据库引擎       

这篇关于数据库设计走查表(为thinker_csai所原创,版权所有)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/862794

相关文章

Spring Security基于数据库验证流程详解

Spring Security 校验流程图 相关解释说明(认真看哦) AbstractAuthenticationProcessingFilter 抽象类 /*** 调用 #requiresAuthentication(HttpServletRequest, HttpServletResponse) 决定是否需要进行验证操作。* 如果需要验证,则会调用 #attemptAuthentica

不懂推荐算法也能设计推荐系统

本文以商业化应用推荐为例,告诉我们不懂推荐算法的产品,也能从产品侧出发, 设计出一款不错的推荐系统。 相信很多新手产品,看到算法二字,多是懵圈的。 什么排序算法、最短路径等都是相对传统的算法(注:传统是指科班出身的产品都会接触过)。但对于推荐算法,多数产品对着网上搜到的资源,都会无从下手。特别当某些推荐算法 和 “AI”扯上关系后,更是加大了理解的难度。 但,不了解推荐算法,就无法做推荐系

MySQL数据库宕机,启动不起来,教你一招搞定!

作者介绍:老苏,10余年DBA工作运维经验,擅长Oracle、MySQL、PG、Mongodb数据库运维(如安装迁移,性能优化、故障应急处理等)公众号:老苏畅谈运维欢迎关注本人公众号,更多精彩与您分享。 MySQL数据库宕机,数据页损坏问题,启动不起来,该如何排查和解决,本文将为你说明具体的排查过程。 查看MySQL error日志 查看 MySQL error日志,排查哪个表(表空间

怎么让1台电脑共享给7人同时流畅设计

在当今的创意设计与数字内容生产领域,图形工作站以其强大的计算能力、专业的图形处理能力和稳定的系统性能,成为了众多设计师、动画师、视频编辑师等创意工作者的必备工具。 设计团队面临资源有限,比如只有一台高性能电脑时,如何高效地让七人同时流畅地进行设计工作,便成为了一个亟待解决的问题。 一、硬件升级与配置 1.高性能处理器(CPU):选择多核、高线程的处理器,例如Intel的至强系列或AMD的Ry

基于51单片机的自动转向修复系统的设计与实现

文章目录 前言资料获取设计介绍功能介绍设计清单具体实现截图参考文献设计获取 前言 💗博主介绍:✌全网粉丝10W+,CSDN特邀作者、博客专家、CSDN新星计划导师,一名热衷于单片机技术探索与分享的博主、专注于 精通51/STM32/MSP430/AVR等单片机设计 主要对象是咱们电子相关专业的大学生,希望您们都共创辉煌!✌💗 👇🏻 精彩专栏 推荐订阅👇🏻 单片机

深入理解数据库的 4NF:多值依赖与消除数据异常

在数据库设计中, "范式" 是一个常常被提到的重要概念。许多初学者在学习数据库设计时,经常听到第一范式(1NF)、第二范式(2NF)、第三范式(3NF)以及 BCNF(Boyce-Codd范式)。这些范式都旨在通过消除数据冗余和异常来优化数据库结构。然而,当我们谈到 4NF(第四范式)时,事情变得更加复杂。本文将带你深入了解 多值依赖 和 4NF,帮助你在数据库设计中消除更高级别的异常。 什么是

SprinBoot+Vue网络商城海鲜市场的设计与实现

目录 1 项目介绍2 项目截图3 核心代码3.1 Controller3.2 Service3.3 Dao3.4 application.yml3.5 SpringbootApplication3.5 Vue 4 数据库表设计5 文档参考6 计算机毕设选题推荐7 源码获取 1 项目介绍 博主个人介绍:CSDN认证博客专家,CSDN平台Java领域优质创作者,全网30w+

DM8数据库安装后配置

1 前言 在上篇文章中,我们已经成功将库装好。在安装完成后,为了能够更好地满足应用需求和保障系统的安全稳定运行,通常需要进行一些基本的配置。下面是一些常见的配置项: 数据库服务注册:默认包含14个功能模块,将这些模块注册成服务后,可以更好的启动和管理这些功能;基本的实例参数配置:契合应用场景和发挥系统的最大性能;备份:有备无患;… 2 注册实例服务 注册了实例服务后,可以使用系统服务管理,

速了解MySQL 数据库不同存储引擎

快速了解MySQL 数据库不同存储引擎 MySQL 提供了多种存储引擎,每种存储引擎都有其特定的特性和适用场景。了解这些存储引擎的特性,有助于在设计数据库时做出合理的选择。以下是 MySQL 中几种常用存储引擎的详细介绍。 1. InnoDB 特点: 事务支持:InnoDB 是一个支持 ACID(原子性、一致性、隔离性、持久性)事务的存储引擎。行级锁:使用行级锁来提高并发性,减少锁竞争

开源分布式数据库中间件

转自:https://www.csdn.net/article/2015-07-16/2825228 MyCat:开源分布式数据库中间件 为什么需要MyCat? 虽然云计算时代,传统数据库存在着先天性的弊端,但是NoSQL数据库又无法将其替代。如果传统数据易于扩展,可切分,就可以避免单机(单库)的性能缺陷。 MyCat的目标就是:低成本地将现有的单机数据库和应用平滑迁移到“云”端