"目前维护公司的一个库房管理系统,之前对数据库了解不是很多,我想问下各位视图,索引,存储过程这些东西对于一个 App 后台或者是简单的网站不用不行吗?"

视图、索引、存储过程一个常规的 App 后台或者简单的网站这些是必须的吗?

本贴最后更新于 192 天前,其中的信息可能已经时移世改

目前维护公司的一个库房管理系统,之前对数据库了解不是很多,我想问下各位视图,索引,存储过程这些东西对于一个 App 后台或者是简单的网站不用不行吗?

感谢    关注    收藏    赞同    反对    举报    分享
优质回帖
  • 88250  

    1. 索引肯定是需要的
    2. 视图看查询场景的复杂度,大部分业务场景应该都不需要
    3. 存储过程能不用就不用

    现代应用基本都是微服务架构,已经按业务场景进行了垂直拆分,所以每个服务的实现不会太复杂。传统面向数据库架构的 MIS 系统有些也在往服务化上迁移,不过也有强依赖数据库的,比如 Oracle、SAP 的 ERP 系统,很多实现都是在数据库层来做。

    综上,简单的网站或者 APP 后端不需要用视图或者存储过程,用了的话反而会增加维护成本,甚至给接盘侠留下很多深不见底的坑。

10 回帖    
请输入回帖内容...
  • 88250      

    1. 索引肯定是需要的
    2. 视图看查询场景的复杂度,大部分业务场景应该都不需要
    3. 存储过程能不用就不用

    现代应用基本都是微服务架构,已经按业务场景进行了垂直拆分,所以每个服务的实现不会太复杂。传统面向数据库架构的 MIS 系统有些也在往服务化上迁移,不过也有强依赖数据库的,比如 Oracle、SAP 的 ERP 系统,很多实现都是在数据库层来做。

    综上,简单的网站或者 APP 后端不需要用视图或者存储过程,用了的话反而会增加维护成本,甚至给接盘侠留下很多深不见底的坑。

    1 回复
       感谢    赞同 1    反对    举报    折叠    分享    评论    回复
  • gitors      

    用了存储过程,你就站在坑的边缘了。

    1 回复
       感谢    赞同    反对    举报    折叠    分享    评论    回复
  • EvilCodes            

    我接收了离职人员的一个项目负责维护,各种坑,数据库数据出错都不敢动,关联性太强,牵一发而动全身

       感谢    赞同    反对    举报    折叠    分享    评论    回复
  • EvilCodes            

    我就是接盘侠

    1 回复
       感谢    赞同    反对    举报    折叠    分享    评论    回复
  • 88250            

    还有一个坑是触发器,那叫一个酸爽。

    3 回复
       感谢    赞同    反对    举报    折叠    分享    评论    回复
  • gitors            

    就在前几天,用的 Oracle ,报外键关联的一条数据没有了,找啊找啊找,终于定位到却数据的 那个 后台实体类 ,数据库没有强关联,但是 用 hibernate 强关联的,找到 关联的那个 实体 ,通过 hbm 配置找到表,以为 OK 了,结果 去数据库看,这个 实体对应了一个视图!!!!! ,然后打开视图,又是关联了 N 表 ~ 甚至有 union all 的数据,我他妈怎么找的到 缺了哪条数据……

       感谢    赞同    反对    举报    折叠    分享    评论    回复
  • EvilCodes            

    我打算用传统的方式重构项目,但我们领导是一个 sqlserver 狂热者,他说我的想法不行,用 sql 处理业务逻辑,存储 过程才是王道,用他那不可一世的权威,我很无语。

    1 回复
       感谢    赞同    反对    举报    折叠    分享    评论    回复
  • EvilCodes            

    他根本不懂 Java 不懂安卓不懂 JavaWeb 开发,只是 sqlserver 玩的 6 就要求必须按他的思路来

    1 回复
       感谢    赞同    反对    举报    折叠    分享    评论    回复
  • 88250            

    和他没法讨论的话就按他的思路来吧,干不动了再说。

       感谢    赞同    反对    举报    折叠    分享    评论    回复
  • Eddie          

    很多传统的软件开发公司部门主管都是那些精通数据库的上了年纪的人,因为他们那个年代项目的瓶颈基本就是数据库,没有缓存,分布式的说法。

    1 回复
       感谢    赞同    反对    举报    折叠    分享    评论    回复
  • 88250   1 感谢            

    这个年代的瓶颈也是数据库,你看上个月 GitHub 的数据库都出事了。计算、网络、存储这三者在分布式架构上,计算的分布最简单,网络分布主要靠设备,存储的分布就很难搞,目前能用的基本都是商业解决方案。数据中心异地多活也一直是业界难题,各种商业解决方案各有利弊。

       感谢    赞同    反对    举报    折叠    分享    评论    回复
请输入回帖内容...