名值模式:
通常用来描述在系统设计阶段不能完全确定属性的对象,这些对象的属性在系统运行时会有很大的变更,或者是多个对象之间的属性存在很大的差异。
举例如下(注:这个例子已经作了相当程度的简化,仅仅是用来帮助大家理解“名值模式”这个概念来使用的,请大家注意)。
1.       使用名值模式进行设计时,如果对“其他属性”仅作浏览保存、不作其它任何特殊处理,则通常会设计一个“属性模板”表,该表的数据记录在系统运行时动态维护。
系统运行时,如需维护“产品其他属性”,可先从“属性模板”中选择一个属性名称,然后填写“属性值”保存,系统会将对应的产品ID、属性模板ID及刚刚填  写的“属性值”一起保存在“产品其他属性”里,这样就完成了相关设置。无论产品的其他属性需求发生怎样的变化、怎样增删改属性,都可以在运行时实现,而不必修改数据库设计和程序代码。
2.       使用名值模式进行设计时,如果对“其他属性”有特殊处理,比如统计汇总,那么这个属性名称需要在程序代码中作“硬编码”,即该属性名称需要在程序代码中有所体现,此时可以在“产品其他属性”表中直接记录“属性名称”,不再需要“属性模板”表。
系统运行时,如需维护“产品其他属性”,程序直接列出“属性名称”,然后填写“属性值”保存,系统会将对应的产品ID、属性名称及刚刚填写的“属性值”一起保存在“产品其他属性”里,这样就完成了相关设置。以后如果需求发生变更,则只需修改相应的程序代码即可,不必修改数据库设计。

转载于:https://www.cnblogs.com/zping/archive/2008/08/04/1260395.html

数据库设计--名值模式(转)相关推荐

  1. 通用的可扩展数据库设计-Entitty-Atribute-Value(EAV)模式

    数据库的设计一般都是面向业务的的,这样能够提供最直接的建模,一般也能提供更快的性能.关系型数据库需要在建库时就固定库的结构,有哪些表,有哪些字段,字段的类型-这种"提前确定"在刻画 ...

  2. 数据库设计(结构化设计方法)——学生考试管理系统

    文章目录 作业要求 一.需求分析 1.1.需求说明 1.2.数据流图 1.2.1.系统的顶层数据流图 1.2.2.系统的第0层数据流图 1.3.数据字典 1.3.1.数据流 1.3.2.数据存储 1. ...

  3. 学生成绩管理系统数据库设计

    数据库中用到的表: 数据库表名 关系模式名称 备注 Student 学生 学生信息表 Course 课程 课程信息表 Score 成绩 成绩表 Student基本情况数据表,结构如下: 字段名 字段类 ...

  4. mysql int 默认值 为ull_mysql的 约束 数据库设计 数据库 存储 触发器 mysql 权限问题...

    今天的目标: mysql的 约束 数据库设计 数据库 存储 触发器 mysql 权限问题 先讲约束: 要他唯一 不能重复 不能空值 : 什么是 mysql的约束: 对mysql 进行约束 2.2  默 ...

  5. mysql eav_数据库设计之EAV(实体、属性、值)

    有这么一个业务,用于客户记录每天做的事情,由于是非常专业的事情,需要专业的记录本,这种记录本有20多种.实际工作中也是有20多样的记录本,记录本的式每隔一年会有点变动.如何进行数据库设计? 有两种方案 ...

  6. 数据库系统概论 第七章 数据库设计(1)特点,概述,设计方法,规范设计方法,新奥尔良方法,用户和数据库管理员,模式,外模式,概念模式,逻辑模式,内模式,需求分析,数据项,数据流,数据存储,处理过程

    关注公众号凡花花的小窝,收获更多的考研计算机专业编程相关的资料 7.1数据库设计概述 广义的讲,是数据库及其应用系统的设计,即设计整个数据库应用系统 狭义的将,是设计数据库本身,即设计数据库的各级模式 ...

  7. 从零开始设计键值数据库(KEY-VALUE STORE)

    本文主要参考 System Design Interview: An Insider's Guide(CHAPTER 6) 键值存储(key-value store),也被称为键值数据库(key-va ...

  8. 数据库设计之EAV(实体、属性、值)

    有这么一个业务,用于客户记录每天做的事情,由于是非常专业的事情,需要专业的记录本,这种记录本有20多种.实际工作中也是有20多样的记录本,记录本的格式每隔一年会有点变动.如何进行数据库设计?    有 ...

  9. MySQL数据库三段式_对数据库模式进行规范化处理,是在数据库设计的什么阶段?...

    对数据库模式进行规范化处理,是在数据库设计的"逻辑设计阶段".数据库的逻辑结构设计就是把概念结构设计阶段设计好的基本实体-关系图转换为与选用的数据库管理系统产品所支持的数据模型相符 ...

最新文章

  1. 使用ArcGIS API for Silverlight实现地形坡度在线分析
  2. java 2类与对象[学堂在线]
  3. 主程的晋升攻略(1):重要的引言
  4. boost::mpi模块is_mpi_op 功能的测试
  5. ERROR: No query specified(Mysql数据库报错)
  6. 如何破解Synplify Pro 9.6.2? (SOC) (Synplify)
  7. Docker和Kubernetes应用程序打包:Metaparticle、Pulumi与Ballerina比较
  8. selenium webdriver如何操作select下拉框
  9. 6.4.3.4 -排除默认网关故障
  10. 项目Kick Off的作用
  11. matlab语言与测绘,MATLAB语言及测绘数据处理应用
  12. SpringBoot + uni-app开发企业级图书商城系统
  13. 基于MATLAB/Simulink的Buck变换器仿真模型,包含开环控制和闭环控制两种控制
  14. 微信小程序授权登录 组件的封装
  15. Ajax创建步骤内含兼容
  16. icinga 被动模式 nsca 安装
  17. 如何利用CCleaner快速查找重复文件?
  18. 日期和时间范围区间怎么查询
  19. 2021年小组年会总结
  20. 新任技术管理者应该怎样去开始帮助他人?

热门文章

  1. IOS CoreData 简单使用CURD
  2. centos 6.5下安装fpm打包工具
  3. 初探Object in java
  4. Linux初级运维(一)——Linux操作系统及常用命令
  5. 洛谷 P3745 [六省联考2017]期末考试
  6. yum安装Apache Web Server后各个文件存放位置
  7. 微信支付 支付成功后不跳转 ecshop微信支付 如下操作即可
  8. 自定义一个ImageSwitcher
  9. java(18) - 枚举类型和静态导入
  10. Java反射机制获取系统@Hide属性