这是什么结构?

时间:2010-07-08 17:39:10

标签: sql data-modeling

在我工作的项目中,我在数据库中看到了这个结构,我问你们所有人,这是一个什么样的建模?

TableX
Columns: isMonday, BeginingHourMonday, EndHourMonday, isTuesday, BeginingHourTuesday, EndHourTuesday and so on...

这是不是sql?我没有问过因为我感到惭愧的人:$

再见。

5 个答案:

答案 0 :(得分:1)

这称为日历表。

处理和解决许多与日期和时间相关的查询是一种非常常见且非常有用的方法。它允许您以有趣和巧妙的方式搜索,排序,分组或以其他方式挖掘数据。

答案 1 :(得分:1)

这是完全去标准化的数据。没有sql的那种。我只是想知道为什么月份不包括在内。它可以增加去标准化因子。

答案 2 :(得分:1)

@Brian Gideon是对的。 @iamgopal也是。我也是,当我说“这取决于被建模和存储在数据库中的数据的性质”。

如果它是每天具有某些属性/属性的天数列表,那么是的,我将其称为非规范化 - 并且10次(或更多)中的9次可能是这种情况。 (我记得有一个包含13列的数据库,一年中每月一个,总计一个,年底用户在下一年又增加了13个列。“数据库先生”,我们打电话给他。)

如果这是一周内工作时间的描述,那么每次查询数据时,总是需要一周中每天的信息,那么行就会表示数据的一个“单位”(每列依赖于表的主键和所有这些),将数据拆分成更小的部分会适得其反。

当然,它可能是两者的组合 - 最初将数据标准化为每天一行,然后出于性能原因故意非规范化。也许9次中它们确实需要数星期的信息,分析显示通过将这些数据连接成一行可以获得巨大的性能提升?

事实上,如果没有关于使用和理性的进一步信息,我将与@iamgopal站在一起,并且支持他。

答案 3 :(得分:0)

看起来像某一周的时间表结构 如果标准化,它可能看起来像

列:day,startHour,endHour
当它转换为excel中的数据透视表时,您将拥有一种时间表类型的结构,这对输入屏幕/视图很有用(与创建具有规范化结构的视图相反)。

答案 4 :(得分:0)

期待那张桌子。即使出于表现原因,我认为没有任何理由这样做。

让我们看看,如果我将isMonday,星期二等更改为ID_Day,我仍然可以获得相同的速度和逻辑。如果我将BeginingHourMonday改为StartHour并将EndHourMonday改为EndHour,我仍然可以获得同样的效果。

我仍然有星期几和开始和结束时间,这是我从表格结构得到的基本想法。也许有些东西我没有看到。

此致