首页 > 其他分享 >字典表设计

字典表设计

时间:2022-09-05 22:56:20浏览次数:67  
标签:存储 比如 使用 类型 设计 数据 字典

一、业务场景

  Web项目开发中,字典表的一般都会存在,主要用来给整个系统提供基础服务。比如男女性别的类型可以使用

0和1来进行表示,在存储数据和查询数据的时候,就可以使用字典表中的数据进行翻译处理。再比如之前做的一个

项目中宠物类型包含老虎-1、海豚-2、大象-3、长颈鹿-4等等;做答题处理时的答题类型,比如单选题、多选题、填空

题等等;比较常用的有用户类型,普通用户还是VIP用户等等;这些类型的数据也可以存储在数据字典中进行统一处理。

二、需求分析

  一般情况下在不同的表中存储数据时,会使用到字典表的数据,比如说用户表在存储用户信息时,用户类型

就会存储字典表中对应的值,而不会存储中文的用户类型。这样在数据处理的时候会方便很多,如使用mysql,有些

关键字段使用中文存储的话,则可能会出现各种问题,在进行排序和分组操作的时候,支持不是很友好。因此各种

类型一般都是使用英文字符和数字进行存储。这样在查询数据的时候,就需要对存储的类型进行翻译操作。常规的

有几种方式,一种是在查询的时候直接进行表关联进行查询,直接将查询的数据翻译为中文,还有一种方式就是

在页面中去进行翻译处理,或者在代码中进行处理。比如0表示性别女,1表示性别男,在页面中显示的时候,

就需要将其值转换成对应的男和女。

三、解决方案

  具体该如何实现数据字典的存储呢?常用的有两种方式:一种是使用两张表来存储字典表的数据,一张表存储各种

类型数据,一张表存储类型对应的具体的值。自己在以往开发的项目中,大多都是使用这种方式,简单明了,一看就懂。

如下面的两种设计方式,都是使用两张表来保存数据。

 

 

还有一种方式是使用一张表来存储字典表的数据。这种设计的字段不多,只使用一张表就可以完成两张表的功能,

主要字段有父id,字典类型,分组名称,存储值,显示值,排序值等等。简单解释一下这种设计方式,排序

值就不用多说,比如用户类型有好几种,在页面中添加的时候,可以对其进行排序,方便页面中展示。存储值就是真正

存储的值比如1,显示值就是对应的中文意思,比如1对应的是男。分组名称可以看作是一个具体的类型,比如用户类型。

字典类型可以有多种,按照需要来进行设置,比如与用户相关的,与菜单相关的,与日志相关的等等。父id不用说,

存在子父级关系,比如二级联动的时候,常规的有省市二级联动,选择一个值的时候,另外一个值也会跟着变化,

这时候就可以使用起来。

提示:推荐使用在页面中进行翻译的方式,可以加快数据处理的效率。因为数据字典中的数据一般不会太多,可以全部

加载到缓存当中,页面中查询的时候,直接从缓存当中获取,效率很快。

标签:存储,比如,使用,类型,设计,数据,字典
From: https://www.cnblogs.com/yilangcode/p/16659934.html

相关文章

  • 系统设计目标(一):如何提升系统性能?
    提到互联网系统设计,你可能听到最多的词儿就是“三高”,也就是“高并发”“高性能”“高可用”,它们是互联网系统架构设计永恒的主题。在前两节课中,我带你了解了高并发系统设......
  • python学习(元组、字典、set集合)
    (一)、列表 1、列表的嵌套 需求:输出数字9 解决:利用索引层级输出   2、列表的切片   (二)、元组:tuple1、列表与元组的区别?列表是可变的,元组是不可变的......
  • python(二)元组、字典、集合
    11.列表的嵌套##列表的嵌套、字符类型#list4=[1,'go','你好',1008.21,True['json','java','c++','go',[1,2,3,7]]]#print(list4[])##列表的切片,获取列表中指定范围的......
  • JVM:第二章:设计一个刚好在一秒堆溢出的程序
    创建了一个JVMDemo类:packagecommon;importjava.lang.management.ManagementFactory;importjava.lang.management.MemoryMXBean;importjava.util.ArrayList;impo......
  • 面向对象的设计原则
    开闭原则(TheOpen-ClosedPrinciple,OCP)软件实体(模块,类,方法等)应该对扩展开放,对修改关闭。系统设计需要遵循开闭原则的原因稳定性。开闭原则要求扩展功能不修改原来的......
  • 高并发系统:它的通用设计方法是什么?
    我们知道,高并发代表着大流量,高并发系统设计的魅力就在于我们能够凭借自己的聪明才智设计巧妙的方案,从而抵抗巨大流量的冲击,带给用户更好的使用体验。这些方案好似能操纵流......
  • Python 如何将字符串转为字典
    实习工作中需要将每行读取的字符串例如'{"A":"sad","B":"123"}'这种形式中的123取出来,查找到了这篇文章,对我很有帮助。转载一下防止遗失。将一个 python 的字符串转为......
  • UML各设计图概要
    1.面向对象分析设计的三个模型对象(静态)模型:描述系统的静态结构,包括类和对象,它们的属性和操作,以及它们之间的关系。包括:类图、对象图动态模型:着重于......
  • 【设计模式】Java设计模式 - 建造者模式
    【设计模式】Java设计模式-建造者模式......
  • 【UML分析、建模与设计】我在工作时遇到UML
    一、前言UML分析、建模与设计来自现实世界中的概念的抽象描述方法(摘取自《UML面向对象分析、建模与设计(第2版)》)就我对UML分析与建模技术的认知,最早可追溯至2019年时的......