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

127 天前
 lalalaXxx

需求

现在我有 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 条; 代谢同理;

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

求大佬指点 更优雅设计;

1504 次点击
所在节点    数据库
6 条回复
maythrive
127 天前
个人想法是:
1. 基因组表:id ,基因组名称,其他基因组相关字段…
2. 代谢组表:id ,代谢组名称,其他代谢组相关字段…
3. 用户表:id ,用户相关字段,比如用户名?
4. 关系表:用户 id ,基因组 id ,代谢组 id

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

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

或者简单的:


jyxl table:

code,user_id,user_value


dx table:

code,user_id,user_value


不要忘记给 code 和 user_id 加索引就行。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1060404

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX