动态表单 mysql_动态表单数据库设计

本文介绍了如何使用MySQL设计动态表单数据库,以适应不断变化的业务需求。通过创建属性表`y_property`存储表单字段信息,以及值表`y_provalues`保存实例属性值,实现了表单的动态添加、修改功能。这种方法允许在不修改原有表结构的情况下,灵活管理商品属性,例如电脑的CPU、RAM等。后续任务是开发动态表单的界面展示部分。
摘要由CSDN通过智能技术生成

需求:

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

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

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

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

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 --是否必填

)

proidpronamehtmltypeisneed

p001型号text0

p002cputext0

p003ramselect0

p004diskselect0

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

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)

)

proidentityprovalue

p001e001联想扬天V45

p002e001AMD5200

p003e001金士顿

p004e001wd500g

p001e002HP450

p002e002INTEL458

p003e002黑金刚

p004e002wd320g

其实也可以这样理解:

y_property 这个表就是一个类

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

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

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

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

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

第一次写技术blog 感觉表达不是很清楚,。希望大家能看懂,看不懂的地方给我指出来吧

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值