随笔 - 47  文章 - 1  评论 - 197  阅读 - 61945

数据库的另一种设计方法

最近参与了一个项目的开发,在开发的过程中发现数据库的设计有点意思,顺便拿来给大家分享一下。

 

对于一个项目来说,数据库无疑是很重要,如果数据库设计不好,项目就很难开发的优秀,所以一个数据库的设计就显得尤其重要。

在我这个项目中,有一个订单表(orderform),一个商品信息表(googsinfo),一个系统参数表(Syspram)暂且拿这几张表做例子.在表orderformgoogsinfo中,所有的字段一律全部都为WG01, WG02, WG03, WG04…..WG30这样的30个字段,这些字段全都是无意义的,如图:

 

 

 

然后在系统参数表(Sysparam)里就标明这些表的意义,包括表里字段的意义,如图

 

 

这里每个表里的所有字段都被清楚的表述出它的意义,然后我们在操作SQL语句的时候就只操作系统参数表。比如一条select语句:

原句:SELECT WG01,WG02 FROM FreightInfo

改变后的:SELECT (SELECT FIELDNAME FROM SYSParma WHERE SHOWNAME=’配送编号’),

(SELECT FIELDNAME FROM SYSParma WHERE SHOWNAME=’联系人电话’) FROM FreightInfo.

当然,大家现在看起来好像改变后的比原句复杂多了,但是如果我们写一个公共类来解析系统参数表里的字段,那我们在写类似SELECT WG01,WG02 FROM FreightInfo

这样的查询语句时,就完全没有必要硬编码在代码中,只要通过改变你传入的参数就可以获取到不通过的字段,如果你的公共类做得更强大的话,那SQL语句的类型(比如:SELECT,UPDAE,DELETE,INSERT)等你都可以通过传入参数来得到不同的SQL语句,这就有点像HRIBERNATE,不过不同的是HREBERNATE把配置写到了XML文件里,而这里是把配置写到了数据库里,操作起来更方便。在以后我们就根本不用关心表的结构问题,哪怕它换成了其他的系统,我也只要改动一下系统参数表里的数据就可以了,完全不用担心字段的问题,因为所有的字段都是无意义,这样使用的重复性就可以大大提高。

 

这就是我的见解,有什么不足的地方,还请多多请教!

posted on   独臂侠  阅读(4593)  评论(67编辑  收藏  举报
编辑推荐:
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
< 2008年12月 >
30 1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31 1 2 3
4 5 6 7 8 9 10

点击右上角即可分享
微信分享提示