猿问

在线等,挺急的!数据库设计 优先多字段还是多条记录?

问题描述
比如有1000W个值,不考虑相关性的前提下是以每个值一条数据(即1000W条数据)的形式存储还是以每条数据四个字段存到250W条数据中?
问题出现的环境背景及自己尝试过哪些方法
刚进一家公司,公司老大让以多条数据的方式存储,打比方,用户有人民币余额,美元余额,日元余额。从我的理解是,应当一条数据中存储三个字段,这仨字段分别代表相应的数值,但目前技术组长以及总监给出的解决方案(已经在用的)是以用户ID、余额类型、余额额度这样表示然后存在一张表中,也就是说这一张表中通过用户的ID会搜到三条结果这三条结果就是用户的三种余额。我并非专业的数据库开发以及维护相关人员。我只是日常工作中会涉及到数据库所以稍微懂一点点而已,我认为应该用第一种,即一条数据中多个字段来构建这个表。但是其中的道理以及相关的专业解释并不是很明确,还希望有大神能够给予专业的解答。谢谢
相关代码
//请把代码文本粘贴到下方(请勿用图片代替代码)
你期待的结果是什么?实际看到的错误信息又是什么?
一只名叫tom的猫
浏览 327回答 2
2回答

婷婷同学_

没什么好说的,首先表结构应根据具体业务来定,你老大的设计思路是解耦了两张表,三种不同的币种和用户信息你存储在一个表里是一种解决方案,讲用户信息和币种解耦两张表存储也是一种解决方案,那么自然是解耦开好啊,这样你以后再增加一个币种就不需要修改原表结构了不是?

萧十郎

没有完美的设计,你举得例子中你老大是考虑后续可能会接入其它的币种,记住避免对核心表表结构的修改是非常有必要的一件事,还以此为例,一个用户同时拥有三种币种的可能性较低,所以记录一个用户的资产状态很有可能只要一个币种是有效的,剩下的币种都是无意义的值0,对于这种不可用于扩展的字段会导致大量信息冗余,占用mysql本身的存储空间,尤其是随着币种的增加这种浪费就越多。
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答