数据库中的横向设计与纵向设计

最近在学习数据库设计中突然算是有意识的领悟到一些理念,横向设计,纵向设计,这个大概是满足第几条范式我不太能搞懂,但是我希望通过自己的方式来汇总一些经验

总所周知数据表是有‘行’与‘列’组成,那么我们在设计中要考虑到这些‘行列’组成的数据,第一是不是能满足业务需求,第二能不能扩展方便,第三能不能让程序写起来

更为简单,所以这是个问题,也是个设计,下面例子:

一条关于学生选修课分数的数据:

--------------------------------------------------这是传统的横向设计方式

-------------------------------------------------这是纵向设计

好吧,突然觉得无论你想怎样加你的选修课,我都不怕你了,但是并不是说纵向设计就无敌了

横向设计的利与弊

利:1、预选设定好了所需要的列,对数据库操作方便

弊:1、不易拓展,易冗余

纵向设计的利与弊

利:1、容易拓展,弹性好,遵循数据库设计的XX范式(至于第几条,我真心记不得)

弊:1、失去了对数据的控制权,也就是说很难维持数据的规范化,如果我的程序不规范随意在选修课列中加入‘烹饪技巧课’,那么作为我设定好的理工学校应用场景,这条数据是错误数据

        2、要管理和操作纵向表很有难度

总之,在数据库设计中不能盲目的追求纵向设计,弹性好,拓展好,他会对数据库照成不必要的操作

在设计中应该追求平衡,必要性

以上为个人观点,不正确的地方希望海涵与纠正..

 

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值