动态表单数据库设计

简介:

需求:

能够根据数据库在界面动态显示表单,包括表单类型、名称等,并且必须提供 添加新表单,修改表单等功能。

 

 

为了满足客户不断的需求变化,有时候需要为某商品增加、修改、删除、属性,这样的话以往的数据库表就很难实现,

因为表的字段是定死了 如果你需要增加一个属性的时候 ,就必须修改表,听说这是不允许的~~。

 

所以我们要设计一个灵活的数据库 下面以电脑设备为例:

pc 现有属性 name cpu ram disk 现在我们要为pc添加一个 mainboard 属性。

 

既然必须提供增加表单,那么我们创建表的时候就不能以cpu ram disk 为PC表的列名, 能够修改的话只能是值

所以应该建立以个属性表 来保存这些值

 

 create table y_property(
 proid varchar2(16) primary key,
 proname varchar2(64),--属性名称
 htmltype varchar2(64),--界面类型
 isneed  number --是否必填 
 )

 

proid proname htmltype isneed 
p001 型号 text 0
p002 cpu text 0
p003 ram select 0
p004 disk select 0

 

 

 

然后要建立以个表来保存这些电脑属性的值

 

 create table y_provalues(
 proid varchar2(32)  , --属性id
 entity varchar2(32) , --实例id
 provalue varchar2(1024) ,--属性值
 constraints pro_fk_proid foreign key (proid) references  y_property(proid),
 constraints provalues_pk primary key (proid,entity) 
 )

 

proid entity provalue
p001 e001 联想扬天V45
p002 e001 AMD5200
p003 e001 金士顿
p004 e001 wd500g
p001 e002 HP450
p002 e002 INTEL458
p003 e002 黑金刚
p004 e002 wd320g

 

其实也可以这样理解: 

y_property 这个表就是一个类

 

y_provalues 这个表就是 y_property 这个类的实例。entity属性就是实例编号,就是一个实际存在的产品编号。

 

另外我们还可以在这个基础上面拓展其他的表使其功能更为丰富,

如 电脑档次表、cpu表(这样的话我们就可以y_provalues中的provalue  与其他表关联,在界面就可以提供下拉列表显示,选择)

 

 这样下来的话就能对电脑商品添加属性了。

接下来的任务就是做一个工程实现界面的动态表单了

分类:  MSMQ

本文转自左正博客园博客,原文链接:http://www.cnblogs.com/soundcode/p/4379363.html,如需转载请自行联系原作者
相关文章
|
Java 测试技术 数据库
Java开发物业管理系统:数据库表单设计
按照功能分为: 用户表 费用表 投诉建议表 第一步创建数据库: CREATE DATABASE yellowstar; 用户表 创建用户表 表名:yw_users CREATE TABLE IF NOT EXISTS yw_users ( uid INT UNSIGNED NOT NU...
2024 0
|
Web App开发 关系型数据库 Java
Spring Boot入门(4)提交表单并存入MySQL数据库
项目介绍   在前两篇博客: Spring Boot入门(2)使用MySQL数据库和Spring Boot入门(3)处理网页表单中,我们已经掌握了如何在Spring Boot中操作MySQL数据库以及网页中的表单。
2193 0
|
关系型数据库 数据库 Python
Django学习(四)表单,让数据库更强大
  表单,在HTML中的标签为,在网页中主要负责数据采集功能。我们在浏览网站时,常常会碰到注册账号、账号登录等,这就是表单的典型应用。
1689 0