如何将一周放入日历时间层次结构中?

Posted

技术标签:

【中文标题】如何将一周放入日历时间层次结构中?【英文标题】:How to fit a week into a calendar time hierarchy? 【发布时间】:2013-08-09 17:13:26 【问题描述】:

与多维数据集通常一样,用户希望不适合层次结构的事物分层显示。他们希望将日 > 周 > 月 > 季度 > 年视为层次结构,但周的问题是它们可以是 1-2 个月的一部分,而不仅仅是 1 个月(并且扩展为 2 个季度、学期的一部分,年)。

所以我的问题是:如何设置属性关系,以及如何设置层次结构?这是我所拥有的,但我知道它不是最佳的。

层次结构(周期 == 周):

属性关系:

没有周期->年,因为是多对多的关系

【问题讨论】:

【参考方案1】:

您需要关注四种类型的星期:

    一年中的第几周 (1-53)。层次结构:年 > 周

    您应该决定是希望在 1 月 1 日开始第 1 周,还是关注ISO standard

    每月的第几周 (1-5)。层次结构:年 [> 季度] > 月 > 周

    您应该决定是希望第 1 周从每月的第一天开始,还是从每月的第一个星期日/星期一开始。

    财政年度的第几周 (1-53)。层次结构:财政年度 > 周

    财政月的一周 (1-5)。层次结构:财政年度 [> 季度] > 月 > 周

【讨论】:

这就是我最终要做的。我继续定义了一个“周期年”属性,它与日历年不完全一致。无论一周从哪一年开始,都可以保证结束。类似的步骤也可以持续数月。【参考方案2】:

您可以保留设计原样,甚至可以将周添加到“日历时间”层次结构中,因此只有用户要求的一个层次结构。这就是微软所说的非自然层次结构。对于这些,Analysis Services 查询响应时间比自然层次结构(所有子级别都与其父级别有关系的那些)慢得多。这就是您在 BIDS 中收到警告的原因。您只需要测试性能是否对您的用户来说足够好。如果是,那很好。如果不是,则可能会从单层解决方案退回到问题中描述的两层解决方案。那么至少第一个层次结构会很快,只有第二个层次结构不好。

还有其他解决方案,但都有些不自然:一些公司将月份定义为正好有四到五周,以便设置关系,但报告月份开始或结束于日历的前几天或后几天月。见 e。 G。 4-4-5 calendar article in Wikipedia。

【讨论】:

以上是关于如何将一周放入日历时间层次结构中?的主要内容,如果未能解决你的问题,请参考以下文章

一周的第一天和日历周

如何使用 Android Studio 中的意图读取一周的日历事件?

Flutter - showDatePicker 将一周的第一天设置为星期一

将一年中的一周与“溢出”进行比较

知道用户是否希望在周日或周一开始一周

获取PHP中给定周数的第一周