anyele
V2EX  ›  问与答

请问数据库里到底应该怎么用?

  •  
  •   anyele · Jul 21, 2017 · 2246 views
    This topic created in 3245 days ago, the information mentioned may be changed or developed.
    数据库不就是拿来存数据吗,但很多公司很多人都把业务写成存储过程,或者是很大一段 sql 各种临时表各种 join 来执行,大部分都包涵了公司业务逻辑,个人隐约感觉这样做不对,但因为技术有限不知道怎么解决,所以请教下数据库的正确使用方法,谢谢各位
    7 replies    2017-07-24 16:49:45 +08:00
    idamien
        1
    idamien  
       Jul 21, 2017   ❤️ 1
    你谈到数据库使用的问题,我在此说说自己的一些经验,当然不一定完全对,欢迎指正


    - 很多人把业务逻辑写入存储过程,你的意思是用 Stored procedure, 这种用法其实也有优点,就是简单的维护只在数据库端做修改就好了。 同时呢 procedure 可以帮助完成整个交易过程,对于一些对 transaction 支持不好的编程语言来说是不错的选择,有时用来做数据访问的优化


    - 不把业务逻辑写入存储过程,比如使用 JAVA 编程语言,可以使用存储过程来进行对数据的访问,但是有 JDBC Hibernate JPA 这些框架,我们可以直接使用,同时呢他们又比较好用,这时候没有必要使用存储过程来访问数据,当然也不是完全禁止的。但是要知道如果存储过程中有业务逻辑,JAVA 业务层也有业务逻辑,这时候代码很难维护,也很难做测试的
    anyele
        2
    anyele  
    OP
       Jul 21, 2017
    @idamien 个人觉得写一大段在数据库里很难维护
    idamien
        3
    idamien  
       Jul 21, 2017
    你们的开发生产环境是什么
    anyele
        4
    anyele  
    OP
       Jul 21, 2017 via Android
    @idamien Windows ,sqlserver
    zhengxin1993
        5
    zhengxin1993  
       Jul 21, 2017 via Android
    做 HIS 的吗?感觉做这个的都这样。
    anyele
        6
    anyele  
    OP
       Jul 21, 2017
    有正确使用数据库的方法吗
    idamien
        7
    idamien  
       Jul 24, 2017
    @anyele 看环境表示很正常,很多程序估计最早都是都是从 VB 上来的,所以很多人习惯使用存储过程。 如果是移植的项目,也就是说现在的程序是 C# 是之前从 vb 移植的,那就不难理解为什么这么做了。 如果是新项目,估计是别人不习惯用 entity ?
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   3314 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 38ms · UTC 13:09 · PVG 21:09 · LAX 06:09 · JFK 09:09
    ♥ Do have faith in what you're doing.