这是一个非常难以搜索的问题。我确实尝试过,但我没有找到我期待的东西。SQL Server表设置设计
我会尽我所能解释这一点。
我有一个数据库设置,我试图在添加一些功能。我担心性能,数据冗余和所谓的最佳实践。
我在数据库中有多个用户,我试图建立“基准”为每个用户。每个用户可以有一个理论上无限的基准(尽管实际上它几乎总是小于5,但我不想限制自己),并且每个基准对于每个年度都有不同的价值观,并向前推进和管理估计未来3 - 4年的基准。这意味着每年将有另一个基准值存在。
这里是一个例子。
某甲
Benchmark 1: 2010, 2011, 2012, 2013, 2014, 2015
Benchmark 2: 2010, 2011, 2012, 2013, 2014, 2015
因此,对等为每个用户和每个基准。
我的问题是这样的:
- 我应该怎样建立这个表?
选项1:设置与每年的用户和列有关系的基准表。我将不得不每年更新数据库并为新的一年添加另一列,并且它可能在极长的时间内失控。
选项2:为与用户有关系的基准测试名称,具有年份的表格和基准数据与基准和年度有关系的表格建立一个表格?这对于维护而言似乎是一种更好的方法,但它也意味着同一个基准测试名称会存在多次,但具有不同的年份和价值。我不需要在新的一年添加一列,只需确保年份存在于年份表中即可。
选项3:东西你们告诉我,是一个更好的选择?我希望。
假设数据集很大,并且有很多用户。
我看不到您的usersXbenchmarks表的目的。基准表中的user_id用于此目的。 – Bill 2012-02-21 18:16:33
@Bill - 好点。 – 2012-02-21 18:30:36