数据库动态模型


我们在做项目的时候往往碰到逻辑没变,模型字段改了,比如,做了个电影网站,一个电影有导演,演员等字段,要把这个项目改成教育视频网站,那一个教育视频的字段就改成了,老师,课目等,使数据库字段更改了,那我们所有的增删改查都要改,比较痛苦.


正因为如些我们需要数据库动态模型,我们的字段是动态的,不是写死的.


无限制自定义字段解决方案




根据数据库中字段动态映射javabean 数据库设计为动态字段_字段


比如,你要新建一个数据模型,名称,老师,时长,演讲内容.首先名称是基本字段,后面的是扩展字段.这个模型叫教育视频模型


首先是在模型表新增一条记录,modelname名称为教育视频模型


然后把自定义的列”老师,时长,演讲内容”存入属性表模型id 对应模型表的id


当添加数据的时候把名称存入基本表,再把”名称,内容,时长”存入记录扩展表,注意相关字段


取单条数据只需要查记录基本表,和扩展表即可.


也许显示数据列表比较难


解决方案如下


建立个函数,getdata(属性id,基本表id)这个函数反回记录扩展表的具体内容,然后查出某模块的属性,如教育视频模型,就会得到教育视频模型的所有属性,如



Id name


1 老师


2 时长


3 内容


再,


Select id,name,getdata(1,id),getdata(2,id),getdata(3,id) from 记录基本表,就可以了.


优点:可以无限制加字段.


缺点:数据非常多,效率也低.适合管理类项目.


有限制自定义字段解决方案


根据数据库中字段动态映射javabean 数据库设计为动态字段_字段_02


这个简单的多


一个记录表里面包括一些基本字段,和一个扩展字段,扩展字段如c1表示char,int表示int 类型


模型表和属性表关联,属性表记录了某一模型的属性和该属性对应的多字段表里的字段



Id 属性 属性对应字段 类型 模型id


1 老师     c1         char 1


2 片长     int1        int   1


这样就可以得到一个模型的属性所对应的字段,再查询就可以了.


优点:比较方便


缺点:可以自定义的字段有限制.