设计数据库时,【视图的使用】和【数据表冗余数据】的小结

最近在做一个相对复杂的整站,某个页面有相对复杂的业务逻辑,出现了反复bug反复修改的情况,甚至是需要将之前做的一些数据表、存储过程、页面进行修改。

这2天在总结这个情况时,也想起以前遇见过的一些“问题”的讨论。

确定需要提醒自己:视图要用,而且确实可以简化过程。(今早决定,手上的这个整站,干脆直接推翻掉不对的地方,重新写)

下面的内容,仅供参考。

如有不对,请各路大神指点。

一、视图的使用

之前对于视图的了解,仅仅是自己的总结:一段查询代码,将数据表根据需要查询出来,供查询使用;为了数据一致性,修改数据的对象是基表。

实际过程中发现,很多页面其实有复杂的处理逻辑(比如两表关联),更麻烦的是多重关联、多重验证。

而视图的使用,可以将这些复杂的关联、验证先“封装”起来;实际处理时,需要面对的就只剩下很小一部分,思路会清晰很多,bug的可能性会大大降低。

二、数据表冗余数据

以前也跟人讨论过,冗余数据的存在是否合理;当时认为冗余数据有就有吧,无所谓,有时候看起来更加方便。

目前看来,这个观点需要推翻掉。

如果冗余的话,后期在修改字段值、验证数据正确性时,会比较麻烦。并且可能影响其他逻辑的处理。

三、解决思路

1、建立数据库时,能不冗余还是不要冗余的好;如果出现其他原因需要冗余,使用视图来解决。

2、视图和数据表的对应关系,不仅是一对一,实际业务中更可能的是“多对一”:一个数据表有多个视图对应。查询时,【select 字段名】的方式,优于【select *】。命名方式使用【表名_view_前端文件名】以区分。

3、有个小坑需要标上来(本人使用navicat,其他软件不明):如果涉及数据表字段修改,一定要先打开视图,再去修改数据表字段——如果没有打开视图而直接修改数据表字段,视图无法打开,要自己重新做。

最后,再次自我反省。

去推翻原有的失误部分了~

  • 1
    点赞
  • 1
    收藏
  • 打赏
    打赏
  • 1
    评论

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

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:大白 设计师:CSDN官方博客 返回首页
评论 1

打赏作者

hgwyl

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值