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

请教一个 Mysql 表 根据需求如何设计的问题?

  •  
  •   lalalaXxx · 146 天前 · 1521 次点击
    这是一个创建于 146 天前的主题,其中的信息可能已经有所发展或是发生改变。

    需求

    现在我有 N 个用户,每个用户有二组数据, 基因数据,代谢数据,原始数据如下(excel 格式);

    基因名称 User-1 值 User-2 值 User-n 值
    jyxl-001 101010 101011 ..n
    jyxl-002 201010 201011 ..n
    jyxl-003 301010 301011 ..n
    jyxl-... ... ... ...

    代谢组名称 User-1 值 User-2 值 User-n 值
    dx-001 101010 101011 ..n
    dx-002 201010 201011 ..n
    dx-003 301010 301011 ..n
    dx-... ... ... ...

    现在想把这些数据存到表里,该如何设计这个表,会有 CRUD 操作;

    PS

    已知初始用户,20000+位;

    基因组初始数据有 1 万个,也就是表 1 里,会有 1W 行初始数据,以后每天会追加 1000 个;

    代谢组,初始数据 800 个, 每天增加 100 ;

    目前我想的就是,一个用户表,一个基因组表 一个代谢组表,基因组两个字段 名称 、值, 这样的话,初始数据第一个 基因组表, 就会有有 N(用户初始 20000) * 10000 条; 代谢同理;

    场景: 查询、导出 (比如我模糊查询几个基因组名称,然后带着用户信息导出)、新增频繁; 没有删除和修改;

    求大佬指点 更优雅设计;

    6 条回复    2024-08-01 16:23:17 +08:00
    maythrive
        1
    maythrive  
       146 天前
    个人想法是:
    1. 基因组表:id ,基因组名称,其他基因组相关字段…
    2. 代谢组表:id ,代谢组名称,其他代谢组相关字段…
    3. 用户表:id ,用户相关字段,比如用户名?
    4. 关系表:用户 id ,基因组 id ,代谢组 id

    这样设计可能比较符合 3NF ?(太久没看书有点忘了哈哈哈)
    maythrive
        2
    maythrive  
       146 天前
    不对
    4 改为两个表
    4. 基因组关系表:id 用户 id 基因组 id 值
    5. 代谢组关系表:id 用户 id 代谢组 id 值
    GooMS
        3
    GooMS  
       146 天前 via Android
    多对多关系
    curvatureship
        4
    curvatureship  
       146 天前
    方案 1:一张基因组和用户组表,一张代谢组和用户组表,字段少可以直接冗余存储,方便查询和导出,如果各自表独立的话要关联查询数据量比较大查询比较耗时

    方案 2:用 MongoDB 来做,你这个场景查询较少、插入较多、数据量也比较大,MongoDB 很适合你这个场景
    wuoty
        5
    wuoty  
       145 天前
    如果用 MySQL 的话:
    表一:用户 ID | 基因组 | 基因数据
    表二:用户 ID | 代谢组 | 代谢数据
    是否需要分别对基因组和代谢组设置索引得看实际查询和新增的时间
    encro
        6
    encro  
       140 天前
    你需要列数据库。。。

    或者简单的:


    jyxl table:

    code,user_id,user_value


    dx table:

    code,user_id,user_value


    不要忘记给 code 和 user_id 加索引就行。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5117 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 40ms · UTC 01:22 · PVG 09:22 · LAX 17:22 · JFK 20:22
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.