用户存储许多数据点

时间:2015-03-26 19:46:24

标签: c# sql database entity-framework orm

我正试图从游戏中吸引用户并跟踪他们的统计数据。每个用户都有自己的统计信息,因此需要单独跟踪。最终每个用户都有一个数据集,每个数据集都有许多数据点。在代码中我最终得到..

public class User
{
    public string Name { get; set; }
    public List<DataPoint> Data { get; set;}
}

public class DataPoint
{
    public byte Month { get; set; }
    public byte Day { get; set; }
    public short Year { get; set; }
    public Stats stats { get; set; }
}

public class Stats
{
    //user stats, just numbers.
}

(我使用自己的月份和年份,因为我不需要额外的DateTime。)

这适用于将所有内容存储在内存中,我无法想出一个坚持它的好方法。我一直在尝试在关系数据库(SQL)中执行此操作。这份名单真的让我失望了。一个表是否只有一堆对数据点键的引用?应该只序列化并存储序列化数据吗?我花了一些时间研究其他人如何存储数据点,但我找不到任何有用的东西。

我正在使用C#中的Entity Framework。

2 个答案:

答案 0 :(得分:1)

  1. 如果在数据库上保留对象,I would use Json as opposed to pure XML(serialization)。它不那么冗长,存储更轻,易于阅读
  2. 我当然同意从这种用途的关系数据库中撤出,并考虑NoSQL or key-value store options。如果您的要求尽可能小,那么这些要求很快,占地面积小,规模更便宜,更好。
  3. 对于Entity FrameworkCode FirstNoSQL解决方案,请尝试BrightstarDb
  4. 最后,您知道Stack Exchange网络中有专用的Gamedev section吗? Here's some goodie 我从那里挖出来。

答案 1 :(得分:1)

如果我理解正确,可以在关系数据库中使用以下结构,您可以使用dataPoint实体上的外键来引用dataPoint所涉及的用户。这假设统计数据集非常一致。

enter image description here