动态表单数据库设计
来源:互联网 发布:局域网通话软件 编辑:程序博客网 时间:2024/04/30 23:13
公司前辈要我做一个动态表单数据库设计,思维愚钝,无法下手。后来前辈帮我把表结构画出来了,才茅塞顿开
现在和大家分享一下。
需求:
能够根据数据库在界面动态显示表单,包括表单类型、名称等,并且必须提供 添加新表单,修改表单等功能。
为了满足客户不断的需求变化,有时候需要为某商品增加、修改、删除、属性,这样的话以往的数据库表就很难实现,
因为表的字段是定死了 如果你需要增加一个属性的时候 ,就必须修改表,听说这是不允许的~~。
所以我们要设计一个灵活的数据库 下面以电脑设备为例:
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 型号text0p002cputext0p003ramselect0p004diskselect0
然后要建立以个表来保存这些电脑属性的值
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 p001e001联想扬天V45p002e001AMD5200p003e001金士顿p004e001wd500gp001e002HP450p002e002INTEL458p003e002黑金刚p004e002wd320g
其实也可以这样理解:
y_property 这个表就是一个类
y_provalues 这个表就是 y_property 这个类的实例。entity属性就是实例编号,就是一个实际存在的产品编号。
另外我们还可以在这个基础上面拓展其他的表使其功能更为丰富,
如 电脑档次表、cpu表(这样的话我们就可以y_provalues中的provalue 与其他表关联,在界面就可以提供下拉列表显示,选择)
这样下来的话就能对电脑商品添加属性了。
接下来的任务就是做一个工程实现界面的动态表单了
第一次写技术blog 感觉表达不是很清楚,。希望大家能看懂,看不懂的地方给我指出来吧
- 动态表单数据库设计
- 动态表单设计
- 动态表单设计
- Form动态表单设计的开发
- 关于动态表单的设计javaweb
- extjs4 数据库读取数据动态生成表单
- 仿京东数据库表单的sql设计
- 数据库表设计--动态字段
- 数据库字段动态扩展设计
- 用lotusscript动态刷新登录页表单设计
- 基于Eclipse下SWT的动态表单设计
- 动态表单
- 动态表单
- 动态表单
- 动态表单
- 动态表单
- 动态表单
- 动态表单的数据库结构设计的三种方案
- BIOS
- 【转】Mini2440触摸屏程序分析
- TE6410中openoc.CFG配置及调试
- EAP和EAPOL资料
- Platform Builder: Find the Source of a Data Abort; an Example
- 动态表单数据库设计
- hook监视窗口
- linux typedef的四个用途和两个陷阱
- Reg Certificate to IE
- jmx是什么?
- 中断解析
- 太恐怖了!什么都能查!!
- 由viewWillAppear没有被调用见控制器结构设计上的误区
- Redhat常用操作记录笔记