|
|
1
3
不,你知道吗 不 每个会计年度创建一个单独的数据库实例、数据库或表。 全部的 不需要分离,只要确保记录包含一个时间戳,然后可以用来确定它发生在哪个财政年度。 |
|
|
2
3
还有第三种选择。 创建一个表,我们称之为“Almanac”,它每天有一行,按日期键入。 其中可能有一些属性有一个函数,比如星期几。有些属性可能是公司特有的,比如当天是否是公司的工作日。 如果您的公司有这样的属性,那么这些属性可以是会计年度、会计季度和会计月份。规范化这个表并不是特别重要。 编写一个填充此表的程序。因此,从日期开始计算财政年度的所有复杂逻辑可以放在一个地方,而不是分散在整个系统中。十年的约会只有3650行,按照今天的标准,这是一张很小的桌子。 然后,将所有日期驱动的数据按会计年度、会计季度或其他方式进行裁剪,这只是一个连接和分组的问题。您甚至可以自动生成同一数据的不同时间框架视图。 我做过这个,而且很管用。它特别适用于报告数据库和数据仓库。 |
|
3
3
不需要复制。时间戳可能已经足够好了,但是借用数据仓库,您可以创建一个“日期维度”。它是一个表,每个日期有一行,每个日期有一列属性。其中一些列可能是会计年度、会计季度等。然后在查询时向事务表中添加DateKey并连接date维度。 比如:
您可以预先加载dimDate,从过去到将来;100年需要36.5k行——对任何数据库来说都不算多。 |
|
4
1
每个实体应将其会计年度作为元数据/静态数据的一部分。 因此,您可以轻松地处理会计年度中断,并且通常数据库可以处理非常大量的数据,因此您应该不会遇到问题。 使用正确的索引将大大提高查询的性能,因此一旦遇到问题,就要担心性能。 |
|
|
developer · 带外键的SQL表设计 1 年前 |
|
|
relatively_random · 确保两个表之间一致的共同参考 1 年前 |
|
|
b126 · 在两种不同的Oracle模式上执行相同查询的速度差异很大 2 年前 |
|
|
robertspierre · 在多对多关系中自动删除未引用的行 2 年前 |
|
|
Michael Samuel · MYSQL在以下情况下自动创建索引 8 年前 |