在进行数据库设计时,我们经常会遇到各种各样的业务需求,从而设计出各种各样的表。而想要做好一个数据库,不但需要前期对各种业务需求的深度理解,还需要在后期项目完善的过程中对数据库更新修改从而使得数据库设计的越发完美。
  对于那些涉及到业务的表或许不太好入手,但项目中经常出现的各种字典表就很好入手了。项目越大那么字典表就少不了,字典表就是常见的类型、状态、单位之类特定的一些值。有些人每一个业务或模块都设计一个字典表用来标识类型或状态等等,这样表的数量就不少了。其实我们可以将一些字典表合并起来,用两个表就能实现多个表的功能。下面我以三个状态表来演示。
  下面是三张表的内容,表名分别是Order_Status、Clip_Status、RedPacket_Status

  上面三张表的作用分别是:第一张用来处理订单的状态信息,第二张用来处理卡(比如会员卡)的状态信息,第三张用来处理红包的状态信息。根据上面的情况可以明显的看出,第三张表是多余的,完全可以去掉第三张表而利用第二张表的数据也没问题,但是因为业务需要给第三张表的加上其他的状态时,岂不是又要加上这张表,如果加在第二张表呢?也是不行的,如果需要对每个业务模块的字典表进行维护,那第二张表岂不是有两个业务模块与之对应,那样就显得有点不伦不类了。
  接下来的这种方法合并的方法就显得更加的灵活转变了。我们可以把每个业务模块假设成一个大类,而业务模块用到的字典表数据就假设成小类。按这个思路就能把多个字典表完成合并了。
  下图为表结构:

表数据:
连表查询结果:

有人会说那个卡状态和红包状态不还是有两种一样的值吗?这样还是不够好啊。很简单,在Functional_Describe表中给一样的值加上一个公共区就行了。见下图:

总结:很明显这就是一对多的关系,一个业务或模块对应多个状态或类型,这样设计可以省略多个表,扩展性也可以,对于新加入的业务,只需要先在Functional_Describe表中添加它的描述,在去Status表中添加与它对应的字典表数据就行了。只涉及数据的录入而不需要去添加表。

数据库设计-简化字典表相关推荐

  1. 数据库设计中常见表结构的设计技巧(转)

    2019独角兽企业重金招聘Python工程师标准>>> 一.树型关系的数据表 不少程序员在进行数据库设计的时候都遇到过树型关系的数据,例如常见的类别表,即一个大类,下面有若干个子类, ...

  2. 数据库设计之商品表分析2

    在上一期,规格确定以后,就可以添加商品了,先看下数据库表 1. SPU表 CREATE TABLE `tb_spu` (`id` bigint(20) NOT NULL AUTO_INCREMENT ...

  3. 数据库设计之商品表分析1

    1. 思路 一个全品类的电商网站,因此商品的种类繁多,每一件商品,其属性又有差别.为了更准确描述商品及细分差别,抽象出两个概念:SPU和SKU. 1.1 SPU和SKU联系 SPU:Standard ...

  4. Day04 数据库设计01 ~多表之间的关系(一对一,一对多,多对多)

    前言 数据库的设计 首先需要我们了解表与表之间的关系,其次是掌握设计库的规范.今天学习的是数据库中表与表之间的关系,一对一,一对多(多对一),多对多. 一.多表之间的关系 概念:现实生活中,实体与实体 ...

  5. 数据库设计--大宽表

    宽表的概念 基本概念 宽表从字面意义上讲就是字段比较多的数据库表.通常是指业务主题相关的指标.维度.属性关联在一起的一张数据库表. 由于把不同的内容都放在同一张表存储,宽表已经不符合三范式的模型设计规 ...

  6. 传智播客韩顺平老师2011ssh实战项目校内网的数据库设计32张表全解

    ------------------------------------------- 用户表 users ------------------------------------------- id ...

  7. 数据库设计之area区域表改版后,数据库设计之区域表

    原先版本:http://blog.csdn.net/u012012240/article/details/51221080 原先版本直辖市的省级别和市级别为1条记录,1条记录即代表省又代表市,操作起来 ...

  8. mysql群发消息_百万级用户量的站内信群发数据库设计

    随着WEB2.0的发展,用户之间的信息交互也变得十分庞大,而且实时性要求越来越高.现在很多SNS网站和一部分CMS网站都广泛地应用了站内信这一模块,这个看似简单的东西其实背后隐藏着很多需要设计师重视的 ...

  9. 资产管理系统概要设计和数据库设计

    资产信息综合管理系统设计 系统总体设计 根据固定资产管理的实际需要,整个系统从功能分类上主要划分为四个模块,主要是用用户管理,实验室管理,资产管理,统计分析 各模块功能设计 (1)用户模块 该模块主要 ...

  10. 【ASP.NET Web】项目实践—网上宠物店1:数据库设计

    1.项目演示 1.1  界面效果 1.2  功能介绍 2.数据库设计 网站数据表 数据库表 说明 Account 用户表,保存用户账号信息及地址等用户资料 Category

最新文章

  1. [matlab]Monte Carlo模拟学习笔记
  2. 多样性计算时代,怎样的技术生态才能满足发展需求
  3. Python os.walk() 方法遍历文件目录
  4. 在showModalDialog和showModelessDialog中提交form时不弹出新窗口
  5. 04-正则解析+bs4基础爬虫
  6. 音视频封装格式、编码格式知识
  7. PhantomJS 与python的结合
  8. uva 11012——Cosmic Cabbages
  9. 2019,微软研究项目盘点
  10. vscode + angular
  11. SMP、NUMA、MPP(Teradata)体系结构介绍
  12. R语言快速读取数据方法
  13. 从城市到矿山!成都睿铂与Microdrones 海外三维建模案例
  14. spingbot 与 activiti 整个 中创建表而找不到表的问题(创建表失败)
  15. 超详细java中的ClassLoader详解
  16. flash mx拖拽实例_Flash MX 2004 Professional的照片闪光器效果面板
  17. dependency标签
  18. c语言程序基础设计题,《C语言程序设计基础》习题集(含答案)
  19. Vivado中异步FIFO IP核的使用与思考
  20. 针式打印机 使用链式纸打印 如何配置纸张参数

热门文章

  1. 破解网址_中国目前的破解组织大全
  2. 简单打印-快递单套打
  3. 车站计算机系统的简称,AFC计算机系统.ppt
  4. itools苹果录屏大师_【智慧技术】上网课没有手写板怎么办?AirPlayer(苹果录屏大师)秒将苹果手机“操作界面quot;或quot;摄像头quot;投屏到电脑上...
  5. android原生桌面,谷歌官方出品的安卓原生桌面App 轻松干掉你手机上臃肿的的桌面!...
  6. 容器精华问答 | Docker是否比虚拟技术要好?
  7. Excel 2013 基础视频教程上线了
  8. 计算机课件 flash,计算机实用技术教学课件 刘毅 第8章 Flash动画制作.ppt
  9. 首都师范 博弈论 5 4 2 Shapley值应用案例
  10. 由WPS 2005想到的