日期:2014-05-16 浏览次数:20626 次
公司前辈要我做一个动态表单数据库设计,思维愚钝,无法下手。后来前辈帮我把表结构画出来了,才茅塞顿开
现在和大家分享一下。
?
?
需求:
能够根据数据库在界面动态显示表单,包括表单类型、名称等,并且必须提供 添加新表单,修改表单等功能。
?
?
为了满足客户不断的需求变化,有时候需要为某商品增加、修改、删除、属性,这样的话以往的数据库表就很难实现,
因为表的字段是定死了 如果你需要增加一个属性的时候 ,就必须修改表,听说这是不允许的~~。
?
所以我们要设计一个灵活的数据库 下面以电脑设备为例:
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 |
免责声明: 本文仅代表作者个人观点,与爱易网无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
|