V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
OldCarMan
V2EX  ›  Java

请教大家一个复杂查询的数据表和 sql 设计问题

  •  
  •   OldCarMan · 2023-06-13 08:36:40 +08:00 via Android · 1841 次点击
    这是一个创建于 565 天前的主题,其中的信息可能已经有所发展或是发生改变。
    背景:现在暂时处于建表阶段,所以下面暂时只提供需求场景。



    列表数据展示列要求:用户名字,用户下单量,最近下单店铺等字段



    需求 1:查询在某店铺下在某段时间内下单量在某个范围的用户列表信息。



    需求 2:在此基础上继续过滤买过指定某个商品的用户。



    需求 3:需要支持订单数据量较大和大批量数据返回的需求。



    PS:在业务实现的基础上,尽量提高查询性能。大佬们有什么看法?谢谢大家回复。
    8 条回复    2023-06-13 21:44:32 +08:00
    miaotaizi
        1
    miaotaizi  
       2023-06-13 08:40:17 +08:00
    百度, 谷歌不用, 来发帖也是没谁了.
    是不是因为 QQ 群都发过了没人鸟?
    sss15
        2
    sss15  
       2023-06-13 08:43:16 +08:00
    现在毕业设计要求这么复杂了?
    opengps
        3
    opengps  
       2023-06-13 08:52:34 +08:00
    最关键的参数缺失,这需求显然不是实际业务需要
    so2back
        4
    so2back  
       2023-06-13 09:08:49 +08:00
    这。。算不上复杂查询吧
    LykorisR
        5
    LykorisR  
       2023-06-13 09:22:17 +08:00
    这这........不就是个简单的多条件查询么,大批量也不给个量级?
    8355
        6
    8355  
       2023-06-13 09:28:15 +08:00
    这个不就是子查询吗
    相当于单条 sql 查也不需要连表
    封装一下做个 handle 就好了
    yesterdaysun
        7
    yesterdaysun  
       2023-06-13 09:34:02 +08:00
    select 用户 id,count(订单 id) as 下单量
    from 订单表
    where 店铺 id=xxx
    and 下单时间 between xxx and xxx
    group by 用户 id having count(订单 id) between xxx and xxx

    看情况再加索引啥的, 应该不算复杂吧
    totoro52
        8
    totoro52  
       2023-06-13 21:44:32 +08:00
    加索引无脑 count 就好了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1101 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 18:20 · PVG 02:20 · LAX 10:20 · JFK 13:20
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.