在稍大一些的项目中,我们总是需要管理各种各样的类型类型数据(如商品类型、游戏类型。。。)。对于这些类型的管理类似,如果为每
一种类型都建立一张表去维护(而在项目中,正常出现50种类型),那工作量是可想而之大,并且我们不得不去了解每一个类型表的名字,
以去关联它。

因此,我们需要一种数据模型以完成对多种多样类型管理的需求。

字典表dictionary                
                
字段名           类型               是否可空    中文名         描述
dict_name    varchar(50)    no          字典名字    
dict_value    int                   no          字典值           固定的,不变的

字典数据表dictionarydata                
                
字段名                 类型              是否可空        中文名               描述
id                       int                 no                                        自增长
dict_value          int                 no               dictionary中的值    
dictdata_name   varchar(50)  no               字典名字    
dictdata_value   varchar(5)     no               字典值                 固定的,不变的
isfixed                int                 no               是否固定             0默认为不固定,1固定;固定就不能再去修改了。
        
说明:dictionary中的dict_value和dictionarydata中的dictdata_value都是添加完不可变的,其它表的类型字段存取的是dictionarydata
中的dictdata_value,在查询关联时,需要添加dict_value的约束(注:有人习惯存取dictionarydata中的ID,这样在查询时可以少
加dict_value的约束。但是在系统的升级,或错误删除dictionarydata表时,后果将是空难性的,并且存取dictdata_value主表的类型字段
简单明了,立即可以知道它是什么类型,所以建议存取dictdata_value)。

表扩展:对于现有的设计,如果需要类型数据需要简单的树形结构,可以在dictionarydata可添加parent_id;如果需逻辑删除数据时,可以
添加iscancle;

最后,在程序中最好再建立两个类dictionary、dictionarydata里面定义整型变量对应于dict_value和dictdata_value值,这样在程序中就
可以通过代码来引用类型数据。

转载于:https://www.cnblogs.com/dataadapter/archive/2012/05/30/2525870.html

常见数据库设计(1)——字典数据相关推荐

  1. mysql中的字典项是啥_常见数据库设计(1)——字典数据

    在稍大一些的项目中,我们总是需要管理各种各样的类型类型数据(如商品类型.游戏类型...).对于这些类型的管理类似,如果为每 一种类型都建立一张表去维护(而在项目中,正常出现50种类型),那工作量是可想 ...

  2. mysql常见数据库设计_MySQL数据库常用架构设计

    Mysql三种存储引擎 MySQL提供了两种存储引擎:MyISAM和 InnoDB,MySQL4和5使用默认的MyISAM存储引擎.从MySQL5.5开始,MySQL已将默认存储引擎从MyISAM更改 ...

  3. python读取erp的数据库_【ERP系统设计】【数据库设计】对数据表重命名和读取建表的SQL语句...

    今天做了一个小Model,就是把另一数据库中的表复制到目标数据库中,但是复制到目标数据库中的表中的记录为空 思路: 1 读取建表的SQL语句 2 通过jdbc执行 3 对新建表进行重新命名 精要: 1 ...

  4. mysql状态表 历史记录设计表_常见数据库设计(2)——历史数据问题之单记录变更...

    在各种应用软件中,客户总是希望看到自己操作关键业务的历史数据(更或者是将来的历史数据,如本年计划明年的商品价格),并且要跟踪变化来源于哪一个版本.历史记录,如果我们按某次修改时,需要新增的记录条件的角 ...

  5. mysql常见数据库设计_常见数据库设计

    误区1:int后面的长度与存储长度无关,仅仅是显示长度. mysql手册中这个长度/值用"M"来表示的. 细心的朋友应该有注意到过mysql手册上有这么一句话:  M指示最大显示宽 ...

  6. MySQL 学习笔记(14)— 数据库设计流程、实体关系图、第一范式、第二范式、第三范式、外键使用

    本文参考:https://gitbook.cn/gitchat/column/undefined/topic/5db92c12a9c3a53bc3800f0c 1. 数据库设计流程 数据库设计是对数据 ...

  7. 数据库设计之数据字典的使用与设计

    如何使用数据字典 文章目录 如何使用数据字典 使用场景 : 解决方案 : 简单解决: 企业级理解: 数据字典是什么: 使用数据字典的优点: 使用场景 : 在平时开发的过程中,特别是在遇到表单时候,我们 ...

  8. 第6章 SQL Server数据库设计

    6.1. 概述 数据库设计是指对于给定的一个应用环境,构造最优的数据库模式,使之能够有效地存储数据,满足各种用户的应用需求(信息要求和处理要求). 可以将数据库设计理解成三个要素:应用环境.数据库模式 ...

  9. 最新springboot选题推荐-应急物资仓库管理系统(mysql)-JAVA.VUE【数据库设计、论文、毕设源码、开题报告】

    摘 要 当下,正处于信息化的时代,许多行业顺应时代的变化,结合使用计算机技术向数字化.信息化建设迈进.以前相关行业对于常规应急物资信息的管理和控制,采用人工登记的方式保存相关数据,这种以人力为主的管理 ...

最新文章

  1. php 开发百度聚合,php利用百度javascript API实现导航
  2. 第二百七十五节,MySQL数据库安装和介绍
  3. python programming training(一):最大回文子字符串
  4. 【MySql】mysql-5.7.20-winx64安装配置
  5. Asp.Net Core2.0 基于QuartzNet任务管理系统
  6. java super.getclass_详解java中this.getClass()和super.getClass()的实例
  7. 当你不能回答别人的提问时怎么办
  8. 避重就轻:Intel的垄断抗辩
  9. 博弈论-第一章 概述
  10. MyBatis 安装下载 及入门案例
  11. centos7(命令行版)安装teamviewer记录
  12. puppeteer-recorder
  13. 微信小程序文件云存储-上传下载删除功能
  14. pads单位切换的快捷键_PADS常用快捷键和一些技巧
  15. 教程:使用tensorflow-slim训练自己数据的图像分类器
  16. 微软 Build 2016年开发者大会发布多项功能升级
  17. php正则表达式判断三个数字相等相同|判断豹子
  18. 小汇总|想学机器学习吗?带坑的那种
  19. android edittext限制字节_EditText输入字数限制的三个方法
  20. C/C++编程学习 - 第7周 ④ 鸡尾酒疗法

热门文章

  1. zeppelin的安装与使用
  2. SpringMVC 基于注解的Controller详解
  3. VC/MFC列表CListCtrl类的LVCOLUMN和LVITEM详解
  4. Python数据库访问之SQLite3、Mysql
  5. MFC的框架程序分析3
  6. c#子线程中打开系统文件操作对话框
  7. IOS15.0的适配
  8. 软件质量模型 测试设计方法,质量模型-可靠性测试
  9. eclipse下如何打开被关闭的项目_如何在Windows 10中打开和关闭平板电脑模式
  10. 场景数据的动态更新setDataVariance(osg::Object::DYNAMIC) (转)