首先让我给你一些背景。
我有一些看起来像这样的数据:
- 亚军1 | 日期1 | 时间1 | 圈数1 | 时间2 | 圈数2 | ... | 时间50 | 圈数50
- 亚军1 | 日期2 | 时间1 | 圈数1 | 时间2 | 圈数2
- 亚军1 | 日期3 | 时间1 | 圈数1 | ... | 时间32 | 第 32 圈
含义:跑步者在每个日期有不同的总时间和圈数。
这是我如何创建 SQL 数据库的模型:
(对不起ASCII艺术,但这是我的第一个问题)
|Runner | |RunnerTimes | |Time |
|RunnerID|-----|RunnerTimesID |----|TimeID |
|RunnerID | |Laps |
|TimeID | |Duration|
|Date |
我的问题是我有一些在数据库之前创建的代码:
public class iRunner
{
public int[] laps;
public TimeSpan[] duration;
}
public static class RunnerFunctions
{
public static double AverageLaps(iRunner runner)
{
return runner.laps.Average();
}
}
所以我可以使用以下方法获取所有跑步者数据:
Runner runner = dbContext.Runner.Where(item=>item.RunnerID == 1);
然后我必须“转换”为类格式:
iRunner r = new iRunner();
r.Laps = runner.RunnerTimes.Select(a=>a.Laps).toArray();
r.Duration = runner.RunnerTimes.Select(a=>a.Duration).toArray();
然后我实际上可以调用预先存在的方法:
Double average = RunnerFunctions.Average(runner);
有了背景知识,下面是我的问题:
- 这是在 SQL 中对数据建模的正确方法吗?
- 有没有更好的方法将我的 SQL 结构“转换”为现有的类和函数?
一些额外的数据:
- 我上面显示的结构是假的,但与我的实际结构相似
- 我在一张表中转换了 3000 个条目,从数据库中检索所有数据需要 500 毫秒,但转换为现有的类结构需要大约 4 分钟。
谢谢!