V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
Newyorkcity
V2EX  ›  问与答

一个应用,需要对一条消息是否发布进行一些权限的校验(需访问数据库)和内容的检查(需正则匹配),则哪个应该先进行?

  •  
  •   Newyorkcity · 2021-05-01 16:24:23 +08:00 · 778 次点击
    这是一个创建于 1334 天前的主题,其中的信息可能已经有所发展或是发生改变。
    因为不论是权限的校验通不过还是内容的检查通不过,消息就肯定发不出来了,所以我想请教『连接数据库进行查询的消耗(当然,是有合适的索引候着的)』和『向文本进行正则匹配以检查(文本最多两百字)的消耗』,哪个更少点?

    对数据库的连接用的是 springboot + HikariCP,正则检查用的是 JDK 自带的。

    多谢
    7 条回复    2021-05-02 00:17:14 +08:00
    imn1
        1
    imn1  
       2021-05-01 16:38:35 +08:00   ❤️ 1
    权限就是 BOOL 吧?消耗总比正则少,难不成贵司的权限设置异常复杂?
    billlee
        2
    billlee  
       2021-05-01 16:49:16 +08:00   ❤️ 1
    看正则有多复杂了,jdk 的正则是 backtrace 的,性能不怎么好。但不管怎么说这个也是容易水平扩展的
    renmu123
        3
    renmu123  
       2021-05-01 18:45:38 +08:00 via Android   ❤️ 1
    那肯定是权限啊,分几种情况讨论
    1. 有权限,内容正确
    2. 有权限,内容错误
    3. 无权限,内容正确
    4. 无权限,内容错误。

    在有权限的情况,要对两种都进行检查,顺序没什么差。
    但如果检查到无权限,那么其实已经不用进行内容检查了。

    如果先检查内容,那么这四种情况都要进行两次检查
    superrichman
        4
    superrichman  
       2021-05-01 18:55:37 +08:00 via iPhone
    没权限你检查这内容有什么意义?
    akira
        5
    akira  
       2021-05-01 21:29:46 +08:00
    @renmu123 按照楼主的要求,内容错误也是不发的。 所以都一样
    lidlesseye11
        6
    lidlesseye11  
       2021-05-01 21:37:15 +08:00
    从性能角度来说,先查内容比较好,毕竟省得连 db 了。
    但从易用性来说还是先查权限吧。。你检查不通过的时候不用给调用者返回原因吗?
    先检查内容的话,人家改了半天好不容易改好了,你再回个没有权限?不给人气炸了。。。
    当然,最好还是两个都检查一下。。
    raaaaaar
        7
    raaaaaar  
       2021-05-02 00:17:14 +08:00 via Android
    一条龙服务

    我就是那条龙
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3084 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 13:06 · PVG 21:06 · LAX 05:06 · JFK 08:06
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.