我一直在开发一个应用程序,并且遇到了一种情况,我想对当前数据进行快照。
例如,在此应用程序中,用户将拥有不同的统计数据并能够输入匹配项。他们在比赛中的排名取决于他们的数据。确定比赛后,应用程序将提取用户的所有当前统计数据并确定他们的分数以查看谁获胜。
现在,在比赛结束后,我希望用户能够查看过去的比赛,当我想显示比赛时参与者的分数时,问题就出现了。我认为存储如下结构的数组是可以接受的:
array(
array(username, points),
array(username, points),
etc.
)
现在规范化数据通常可能是最佳实践,但在这种情况下:
- 一场比赛可以有2到25名参与者。
- 数据永远不会更新,只会读取。
- 我认为将它放在数据库中的数组结构中可以节省我在后端代码中构造数组的时间。
- 编辑:数据不是永久的。比赛记录将在比赛结束7天后删除。
谁能告诉我这个解决方案是否会带来任何问题?
编辑
我将在序列化数组后保存数据,所以在我的数据库中我会有一个名为“matches”的表,它会有一个名为“results”的列。
此列的行将包含序列化数组。因此,如果数组看起来像这样:
$array["a"] = "Foo";
$array["b"] = "Bar";
$array["c"] = "Baz";
$array["d"] = "Wom";
Then the row in the database would look like this:
a:4:{s:1:"a";s:3:"Foo";s:1:"b";s:3:"Bar";s:1:"c";s:3:"Baz";s:1:"d";s:3:"Wom";}