数据库动态模型

数据库动态模型

我们在做项目的时候往往碰到逻辑没变,模型字段改了,比如,做了个电影网站,一个电影有导演,演员等字段,要把这个项目改成教育视频网站,那一个教育视频的字段就改成了,老师,课目等,使数据库字段更改了,那我们所有的增删改查都要改,比较痛苦.
正因为如些我们需要数据库动态模型,我们的字段是动态的,不是写死的.
无限制自定义字段解决方案
 
比如,你要新建一个数据模型,名称,老师,时长,演讲内容.首先名称是基本字段,后面的是扩展字段.这个模型叫教育视频模型
首先是在模型表新增一条记录,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
这样就可以得到一个模型的属性所对应的字段,再查询就可以了.
优点:比较方便
缺点:可以自定义的字段有限制.

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值