数据库动态模型
我们在做项目的时候往往碰到逻辑没变,模型字段改了,比如,做了个电影网站,一个电影有导演,演员等字段,要把这个项目改成教育视频网站,那一个教育视频的字段就改成了,老师,课目等,使数据库字段更改了,那我们所有的增删改查都要改,比较痛苦.
正因为如些我们需要数据库动态模型,我们的字段是动态的,不是写死的.
无限制自定义字段解决方案
比如,你要新建一个数据模型,名称,老师,时长,演讲内容.首先名称是基本字段,后面的是扩展字段.这个模型叫教育视频模型
首先是在模型表新增一条记录,modelname名称为教育视频模型
然后把自定义的列”老师,时长,演讲内容”存入属性表模型id 对应模型表的id
当添加数据的时候把名称存入基本表,再把”名称,内容,时长”存入记录扩展表,注意相关字段
取单条数据只需要查记录基本表,和扩展表即可.
也许显示数据列表比较难
解决方案如下
建立个函数,getdata(属性id,基本表id)这个函数反回记录扩展表的具体内容,然后查出某模块的属性,如教育视频模型,就会得到教育视频模型的所有属性,如
”
Id name
1 老师
2 时长
3 内容
再,
Select id,name,getdata(1,id),getdata(2,id),getdata(3,id) from 记录基本表,就可以了.
优点:可以无限制加字段.
缺点:数据非常多,效率也低.适合管理类项目.
有限制自定义字段解决方案
这个简单的多
一个记录表里面包括一些基本字段,和一个扩展字段,扩展字段如c1表示char,int表示int 类型
模型表和属性表关联,属性表记录了某一模型的属性和该属性对应的多字段表里的字段
如
Id 属性 属性对应字段 类型 模型id
1 老师 c1 char 1
2 片长 int1 int 1
这样就可以得到一个模型的属性所对应的字段,再查询就可以了.
优点:比较方便
缺点:可以自定义的字段有限制.