现在我有 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 操作;
已知初始用户,20000+位;
基因组初始数据有 1 万个,也就是表 1 里,会有 1W 行初始数据,以后每天会追加 1000 个;
代谢组,初始数据 800 个, 每天增加 100 ;
目前我想的就是,一个用户表,一个基因组表 一个代谢组表,基因组两个字段 名称 、值, 这样的话,初始数据第一个 基因组表, 就会有有 N(用户初始 20000) * 10000 条; 代谢同理;
场景: 查询、导出 (比如我模糊查询几个基因组名称,然后带着用户信息导出)、新增频繁; 没有删除和修改;
求大佬指点 更优雅设计;
1
maythrive 43 天前
个人想法是:
1. 基因组表:id ,基因组名称,其他基因组相关字段… 2. 代谢组表:id ,代谢组名称,其他代谢组相关字段… 3. 用户表:id ,用户相关字段,比如用户名? 4. 关系表:用户 id ,基因组 id ,代谢组 id 这样设计可能比较符合 3NF ?(太久没看书有点忘了哈哈哈) |
2
maythrive 43 天前
不对
4 改为两个表 4. 基因组关系表:id 用户 id 基因组 id 值 5. 代谢组关系表:id 用户 id 代谢组 id 值 |
![]() |
3
GooMS 43 天前 via Android
多对多关系
|
4
curvatureship 43 天前
方案 1:一张基因组和用户组表,一张代谢组和用户组表,字段少可以直接冗余存储,方便查询和导出,如果各自表独立的话要关联查询数据量比较大查询比较耗时
方案 2:用 MongoDB 来做,你这个场景查询较少、插入较多、数据量也比较大,MongoDB 很适合你这个场景 |
![]() |
5
wuoty 42 天前
如果用 MySQL 的话:
表一:用户 ID | 基因组 | 基因数据 表二:用户 ID | 代谢组 | 代谢数据 是否需要分别对基因组和代谢组设置索引得看实际查询和新增的时间 |
![]() |
6
encro 37 天前
你需要列数据库。。。
或者简单的: jyxl table: code,user_id,user_value dx table: code,user_id,user_value 不要忘记给 code 和 user_id 加索引就行。 |