数据库设计/选型和权限问题 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
anthoy
V2EX    数据库

数据库设计/选型和权限问题

  •  
  •   anthoy 2020-12-02 15:01:36 +08:00 1895 次点击
    这是一个创建于 1849 天前的主题,其中的信息可能已经有所发展或是发生改变。
    我手头上有大约几十万条数据,数据的类型大概是这样子的: 第一条:a:xxx,b:xxx,c:xxx 第二条:b:xxx,d:xxx 第三条:a:xxx,b:xxx,d:xxx ... 主要意思是数据的每条里面的参数都不一样,有的数据可能在别条里面有,有的没有 而且 a/b/c/d 目前是没有固定下来的,可能存在递增下去 e,f,g...这样子 数据的使用是: 1.获取数据所有条里面的 a 2.获取数据所有条里面的 a 和 b,a和 b 同时存在 目前我是使用 mysql 的 json 进行存储的,然后通过查询是判断是否存在 a 或者是否同时存在 a/b,存在则进行提取 a 或者 a/b 出来 目前打算更换一下数据库的设计或者切换为 mongodb 数据库存储 不知道大家能否给一点建议 
    第 1 条附言    2020-12-02 16:11:32 +08:00
    补充一下查询主要是通过日期范围查询的,比如 202001-202002 中的所有 a 或者所有同时存在的 a/b
    11 条回复    2020-12-03 08:44:06 +08:00
    kuro1
        1
    kuro1  
       2020-12-02 15:03:02 +08:00
    mongo 即可
    securityCoding
        2
    securityCoding  
       2020-12-02 15:20:59 +08:00
    mongo 用 mysql 搞来搞去代码慢慢会变得复杂无比最后成了一个四不像
    anthoy
        3
    anthoy  
    OP
       2020-12-02 15:35:11 +08:00
    其实我是想了解下除了这种方式外是否还有其他可行的方案,类如设计思路换一下?有其他的查询方式?
    dusu
        4
    dusu  
       2020-12-02 15:58:10 +08:00 via iPhone
    base 表

    id-meta_info

    base_attr 表

    id-base_id-attr-val



    把数据拆成行,attr-base_id 加上你的索引 轻松解决
    anthoy
        5
    anthoy  
    OP
       2020-12-02 16:12:29 +08:00
    @dusu 不太明白,能否再说一下,没有接触过这种
    Mithril
        6
    Mithril  
       2020-12-02 16:38:44 +08:00   1
    NoSQL 都可以,不愁 License 的话就 Mongo,愁的话就 Cassandra 。
    ElasticSearch 也可以,而且性能不错。
    AX5N
        7
    AX5N  
       2020-12-02 16:53:47 +08:00
    同问,比如你要做一个电影 STAFF 的数据库,有的电影有 A 职位,有的电影没有,你们会怎么做?
    F281M6Dh8DXpD1g2
        8
    F281M6Dh8DXpD1g2  
       2020-12-02 17:07:27 +08:00 via iPhone
    @AX5N movie postion name 不就行了
    newghost
        9
    newghost  
       2020-12-02 17:24:24 +08:00
    dusu
        10
    dusu  
       2020-12-02 22:39:58 +08:00 via iPhone   1
    @anthoy

    base 表

    存公用 meta 信息

    也就是你的所谓第一行 第二行

    base_attr 表

    每一行,代表

    base_id=base 表 id
    attr=属性名称或代号
    val=属性对应的值

    base_id+单个属性+单个值,例如:

    第一行 id + 这是 a 属性 + a 的内容

    第一行 id + 这是 b 属性 + b 的内容

    第二行 id + 这是 a 属性 + a 的内容

    第三行 id + 这是 c 属性 + c 的内容

    ....

    后续无论是要加 x 还是 y 还是 z 属性都可以应对

    优点是维护起来容易 拓展方便

    缺点就是多了次额外查询
    Mithril
        11
    Mithril  
       2020-12-03 08:44:06 +08:00
    @newghost 首页介绍就把自己名字写错了可还行。。。还弄个大红的底,可怕别人不知道了。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     4385 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 33ms UTC 01:05 PVG 09:05 LAX 17:05 JFK 20:05
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86