2016-03-06 156 views
1

我正在为我的雇主为不同的租赁投资建立一个数据库。我希望每个记录都有投资代码,并在接下来的10年内预计每月的现金流量。投资代码,月份和现金流 -更多记录或更多记录?

我可以用120米栏的所有未来现金流量包月,

OR

我只有3个字段设置此。

哪个更好?我可能每个月会有5000个新的投资。第一个产生5000个记录,第二个产生600000个。这是一个问题吗?我会根据数据库其余部分的关系运行查询和内容。哪种方法可以提供最佳性能?

感谢先进!

+0

任何方式就可以了。问题是哪个更快或更有组织?这取决于你正在做什么样的查询 - 但通常人们会创建关系表,这样他们就可以将事物分解成更有组织的形式,并避免重复数据。 – Tasos

回答

0

我喜欢第二种方法,它可能会有更大的表格大小,因为投资代码会重复每条记录,但是会更规范化。如果您有适当的主键设置,我不认为应该有任何性能问题。对于新的投资还有另一个好处:你不需要有120个领域,因为他们似乎在任何月份开始。

+0

这不是更规范化。规范化通过加入到它的较小表来替换表,因此使用相同的列名。这只是一个“更好”的设计。因为它允许我们编写查询返回不同数量的月度现金流,而无需将多个子表达式硬连接到我们的查询中。 – philipxy

0

更新...

我同时使用宽而短VS使用成千上万的测试狭窄和高大的选择我自己的测试一样。

两者的查询性能大致相同(只要查询设计良好并且不返回单个记录)。如果您使用秒表,较宽的桌子稍微好几秒,但高度仍然可以接受。

主要区别在于生成的数据量。宽只需要200mb。高达1GB的相同信息!在高的数据写入需要更长的时间。

鉴于Access有2GB限制,并且我不需要灵活性来添加过去5年的价值(我知道这是不需要的),我想我会选择1 - 短而宽的桌子。

我有点惊讶高桌有多大 - 我会虽然Access将能够压缩数据更好一点。