Database 年度更新数据库的数据库设计(每年一次)

Database 年度更新数据库的数据库设计(每年一次),database,database-design,Database,Database Design,我有一个大型数据库,每年只更新一次。每年的数据都将使用相同的模式(数据不会添加任何新变量)。有一个“主”表,其中存储了大部分客户信息。为了跟踪每年发生的事情,在主客户表中放置一个字段来说明它是哪一年是更好的设计,还是有一个与主客户表相关的“年”表是更好的设计?要真正回答这个问题,我们需要查看您的模式,但为新的一年创建一个新表几乎从来都不是正确的选择。您可能希望将年份与客户联系起来。要真正回答这个问题,我们需要查看您的模式,但为新的一年制作一个新表几乎从来都不是正确的选择。您可能希望将年份与客户关

我有一个大型数据库,每年只更新一次。每年的数据都将使用相同的模式(数据不会添加任何新变量)。有一个“主”表,其中存储了大部分客户信息。为了跟踪每年发生的事情,在主客户表中放置一个字段来说明它是哪一年是更好的设计,还是有一个与主客户表相关的“年”表是更好的设计?

要真正回答这个问题,我们需要查看您的模式,但为新的一年创建一个新表几乎从来都不是正确的选择。您可能希望将年份与客户联系起来。

要真正回答这个问题,我们需要查看您的模式,但为新的一年制作一个新表几乎从来都不是正确的选择。您可能希望将年份与客户关联起来。

我建议在客户表中设置年份字段,这样就可以将所有年份都关联起来。您甚至可以使用时间戳自动输入用户注册的日期。

我建议在customer表中有一个year字段,这样就可以将所有内容放在一起。您甚至可以使用时间戳自动输入用户注册的日期。

通常您会分割归档数据,因为您正在对当前数据执行OLTP操作,因为您希望主要处理当前数据,有时查看旧数据。但你似乎很少有更新。我想主要的驱动因素是您的查询,以及它们“通常”做什么,以及您需要从中获得什么性能。对你来说,把所有的东西都放在一个表中可能更容易——有一个年份列。但是,如果您的大多数查询都是针对本年度的,并且它们的性能很差,那么您可能需要考虑将当前数据拆分出来—或者使用物理表,或者对表进行分区(根据数据库的不同,有些查询可以为您做这件事,但仍然是单个表)

通常,您会分离归档数据,因为您正在对当前数据执行OLTP操作,因为您希望主要处理当前数据,有时查看旧数据。但你似乎很少有更新。我想主要的驱动因素是您的查询,以及它们“通常”做什么,以及您需要从中获得什么性能。对你来说,把所有的东西都放在一个表中可能更容易——有一个年份列。但是,如果您的大多数查询都是针对本年度的,而且它们的性能很差,那么您可能需要考虑将当前数据拆分出来—或者使用物理表,或者对表进行分区(根据数据库的不同,有些查询可以为您做这件事,但仍然是单个表)

您将使用什么数据库?便携式数据库?SQL Server、ORacle?您将使用什么数据库?便携式数据库?SQL Server、ORacle?我曾考虑过一年,然后是2010年、2011年、2012年等。但我认为,如果我只在主表中创建一个字段,事情会变得更容易。对于大型数据库,每年使用一个不同的表是进行水平分区的一种简单方法。每个客户每年都需要一些东西,这有什么原因吗?或者仅仅是每个客户每年都有某种类型的更新需要存储吗?@Gabe在某些情况下肯定是这样。虽然听起来他并不像是在建造一个高性能的数据仓库。@CollinHockey你说得对:)。这将被用于我和我:)我考虑过一年,然后是2010年、2011年、2012年等等。但我认为如果我只在主表中创建一个字段,事情会变得更容易。对于大型数据库,每年有一个不同的表是进行水平分区的一种简单方法。每个客户每年都需要一些东西,这有什么原因吗?或者仅仅是每个客户每年都有某种类型的更新需要存储吗?@Gabe在某些情况下肯定是这样。虽然听起来他并不像是在建造一个高性能的数据仓库。@CollinHockey你说得对:)。在这种情况下,我们会像查看新数据一样频繁地查看旧数据,并比较趋势。在这种情况下,最好将所有数据都放在同一个表中,我认为在这种情况下,我们会像查看新数据一样频繁地查看旧数据,比较趋势。在这种情况下,我认为最好把它们放在同一张表中