我不确定这是否是正确的交换张贴这个,所以请让我知道,如果我应该移动它。
这更像是一个设计问题。
我有一个网站,允许用户被“跟踪”,并跟踪他们的时间/工作。这涉及到用户最多每分钟都可以用我的网站更新他们的帐户,但通常用户每天只更新几次。但是,没有什么可以阻止其他人更新你的帐户。
每次更新都会创建一个数据点,一个快照(如果您愿意的话),记录他们的帐户状态和完成的工作量。
用户可以查看他们在过去一天或过去一周完成的工作量。这是通过更改要查看的数据点的范围来实现的。
我现在的问题是:很有可能有超过30万的用户。还有一些用户帐户,人们比其他人更关注,比如说,一个ceo或一个经理,因此这些帐户将更经常地更新。这导致在一年左右的时间跨度内,单个用户可能有10万多个数据点。
目前我正在考虑通过以下Map来存储它们:
unixtime -> account snapshot
对于用户来说,这似乎最容易存储为一个大的json数组,例如(我将存储其他细节):
jsonArray = {
"alice": {
"totalHours": 31.6,
"updates": {
1515653260 : { work: 95%, hours: 8 },
1515691399 : { work: 93%, hours: 10 },
1515695125 : { work: 91%, hours: 7.6 },
1515698694 : { work: 56%, hours: 6 },
}
}
"bob": {
"totalHours": 7.32,
"updates": {
1515654356 : { work: 95%, hours: 1 },
1515690342 : { work: 93%, hours: 6.32 },
}
}
}
这是一个有效的解决方案吗?我无法想象 json
字符串占用了太多的空间,mysql无法容纳它,但我从未处理过可能会增长到如此之大的事情。
我是否可以使用其他数据结构,或者在获取/存储数据方面更有效?
谢谢。
暂无答案!
目前还没有任何答案,快来回答吧!