gpt4 book ai didi

sql - 数据库设计;如何有效地存储周数?

转载 作者:搜寻专家 更新时间:2023-10-30 21:40:52 25 4
gpt4 key购买 nike

我需要创建一个表来存储一个人每周在每项任务上工作的小时数。该表将如下所示:

[TaskID] [User] [Week 1] [Week 2] ....... [Week 52]  [Year] 

所以我的问题是,这样的数据库设计会遇到性能问题吗?我总能找到它是哪一周的正确引用。例如,第 2 周 = 2011 年 1 月 3 日 - 2011 年 1 月 9 日。

处理闰年的最佳方式是什么?比如 2011 年 12 月 26 日 - 2012 年 1 月 1 日。我想我仍然可以将这视为 2011 年的最后一周。

如有任何意见/建议,我们将不胜感激。

谢谢!

最佳答案

这是非常非规范化的数据,不推荐。数据是用来向下增长的,而不是出去的。像这样的事情是可取的:

create table YourWeeks
(
TaskID int identity(1, 1) not null,
User varchar(100) not null,
Week varchar(100) not null,
WeekEnum int not null,
Year int not null,
constraint ck_weeknum check (WeekEnum between 1 and 52)
)
go

为了处理闰年,您可以使用外键引用,如下所示:

create table Years
(
Year int not null,
IsLeapYear bit not null
)
go

alter table YourWeeks
add constraint fk_weeks foreign key (Year) references Years (Year)
go

关于sql - 数据库设计;如何有效地存储周数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8549831/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com