【发布时间】:2012-02-01 09:05:05
【问题描述】:
所以我正在使用 SQLITE 用 C# 编写一个应用程序来跟踪我公司的销售数据。我们目前跟踪 12 个月(包括当前)的销售数据并每天跟踪。我还计划能够及时比较两个(或更多)点之间的销售数据,这是我迄今为止设计的数据库。它由两个表组成:
salesIndex 是一个包含两列的表,一个唯一的 id 和一个表示时间戳的文本。这是一个主表,列出了我们跟踪销售数据的所有时间。
salesData 是一个有 7 列的表,第一列是上一张表中的 id,第二列是销售日期,接下来的 5 列是描述销售类型(即数量等)的整数。
我担心的是,如果我们每天每天都这样做,那么每年大约有 133k 表,并且我们会将数据存储 3 年,所以大约 400k 行,我想检索起来会有点慢数据来自。有没有更好的方法来为此设计数据库?我在想也许我应该每天创建一个表来跟踪我们的销售额,这样如果我们想查询几天的销售额,我们就只查询每个表而不是一个巨大的表?任何帮助表示赞赏:)
【问题讨论】:
-
您的意思是每年约 133k 行吗? :)
-
并且每天重新创建一个表 - 我认为这对于除了最简单的查询(例如,“今年 1 月的销售额与去年相比如何?” 不会是编写简单的查询)。 salesData 不应该是您每天更新的单个表是否有原因?
-
我认为您的设计可以通过仅包含当天销售额的销售表来大大简化。然后您每年只需添加 365 1/4 行,您就可以快速运行查询以确定任何时间段的销售额。 12个月,6个月,今年的同一天,去年的同一天,甚至是过去X年的12个月定期销售额的比较……为每一天创建一个新表似乎有点过头了并且容易出现数据完整性问题。
-
您是否调查过是否已经有可用的软件包可以为您做到这一点?跟踪销售数据似乎是一个常见问题,市场上应该已经有很多解决方案了。