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

个人经历如何存储比较好呢?怎么设计数据表才便于交叉比对?

  •  
  •   sjmcefc2 · 2022-04-07 17:17:58 +08:00 · 1550 次点击
    这是一个创建于 960 天前的主题,其中的信息可能已经有所发展或是发生改变。

    1982.09—1984.07 安徽省气象学校气象学专业学生

    类似这样的数据如何存储呢

    9 条回复    2022-04-08 20:15:41 +08:00
    Xhack
        1
    Xhack  
       2022-04-07 17:29:30 +08:00
    开始时间 结束时间 学校 专业
    shenqi
        2
    shenqi  
       2022-04-07 17:35:29 +08:00
    基础做法
    table 用户 {name, id}
    table 学校 {name, id}
    table 专业 {id, name} // 一般这是通用专业
    table 经历 {start_unix,end_unix,学校_id,专业_id,用户_id}

    经历数据量大了之后的分表做法:
    table 经历_1982 年 {start,end,学校_id,专业_id,用户_id}
    table 经历_1984 年 {start,end,学校_id,专业_id,用户_id}
    table 经历_xxxx 年 {start,end,学校_id,专业_id,用户_id}

    用户数据量大了之后,难搞。
    学校数量,再大也不过百万。
    专业也是,数量不多。
    sjmcefc2
        3
    sjmcefc2  
    OP
       2022-04-07 22:10:47 +08:00
    @shenqi 有没有比较系统的案例可以参考呢?
    sjmcefc2
        4
    sjmcefc2  
    OP
       2022-04-07 22:11:40 +08:00
    想把简历做成数据库来存储
    LeegoYih
        5
    LeegoYih  
       2022-04-08 09:15:07 +08:00
    适合非结构化的数据库,MongoDB 之类的
    joApioVVx4M4X6Rf
        6
    joApioVVx4M4X6Rf  
       2022-04-08 09:58:10 +08:00
    存 json 字符串不行吗
    shanghai1943
        7
    shanghai1943  
       2022-04-08 10:33:31 +08:00
    得看后期有怎样的需求。如果后期还是不断增加字段而且没有关联统计之类的需求的话,可以试试 MongoDB ,如果有很强的关系查询统计,那优选 MySQL 了
    Akiya
        8
    Akiya  
       2022-04-08 11:11:40 +08:00
    图数据库,一个人是一个点,一个省是一个点,一个学校是一个点,一个专业也是一个点,关联关系用边来表示
    参考: https://vonng.github.io/ddia/#/ch2?id=%e5%9b%be%e6%95%b0%e6%8d%ae%e6%a8%a1%e5%9e%8b
    zyx199199
        9
    zyx199199  
       2022-04-08 20:15:41 +08:00
    我上份工作是做商业化的简历自动解析的。我们当时使用的是 MongoDB 数据库存储,主要是考虑到解析的字段经常增加修改

    但是我们的存储除本身没有太考虑复杂查询的优化

    当时的存储格式大体是

    [
    {'学校': '北京大学(珠海分校)', // 简历中的原始名称
    '标准校名': ''北京大学', // 在解析学校的同时,判断学校的标准名称
    '起始时间': '2009.9',
    '结束时间': '2013.9',
    '专业': '气象学'},
    ]

    数组中的一个 字典( dict )就是一段经历,在存储到数据库前按照时间排序,第一个字典对应第一段经历,以此类推

    如果需要实现复杂的高效查询,可以先试试这样存储后的查询效率。如果效率太低,可以考虑在 MongoDB 存储基础数据之外再增加一个 Neo4j 的图数据库,用于存储数据之间的关系

    如果不是做实时的复杂查询,而是已经确定好了要查询的内容,至少几十万条数据的情况下,应该还是不太需要 Neo4j 的。分步做好预处理,然后将预处理好的数据用 pandas 加载,一个正常的笔记本就能做到比较快的各种统计查询了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2700 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 12:28 · PVG 20:28 · LAX 04:28 · JFK 07:28
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.