gpt4 book ai didi

sql - 存储计划信息

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

我需要创建一个表来保存 session 日程。 session 可以安排为:

每日“曾经 X 天”。其中 X 可以介于 1 和 6 之间。X session 后结束。其中“ session ”基本上是重复次数。

每周它可能在一周中的哪几天发生。周一、周二等。每周可以选择多于一天。结束日期。

每月使用可以选择它可能发生的月份的日期(第 1 天、第 2 天等)或者,他们可以从“第 1、2、3、4 或最后”和日期“星期一、星期二”的查找中进行选择,例如说该月的“第二个星期五”。

如何将所有这些场景存储在一个表中?

我在想:

CREATE TABLE schedule
(
ID INT NOT NULL IDENTITY(1,1) PRIMARY KEY,
StartDate DATETIME NOT NULL,
EndTime TIME NULL,
RepeatTypeID INT NOT NULL, // Daily, Weekly, Monthly, None
// For Daily
EveryDayCount INT NULL, // to handle 'every 3 days',
RepeatCount INT NULL, // How many occurances. Can be shared with different RepeatTypes
// weekly
IsMonday BIT,
IsTuesday BIT,
etc // A field per day selection. Is there a better way?
// Monthly
MonthlyDayNumber INT NULL,
MonthlyRepeatIntervalID INT, // Lookup table with '1st, 2nd, 3rd, 4th, Last'
MonthlyDayRepeatSelection INT // Lookup on Monday, Tuesday etc
)

但这似乎效率低下。是否有更好的设计模式来满足这些需求?

最佳答案

即使您有每日、每周、每月等......仍然意味着 session 将在某个特定的日子举行......对吗?

因此

CREATE TABLE schedule
(
ID INT NOT NULL IDENTITY(1,1) PRIMARY KEY,
StartDate DATETIME NOT NULL,
EndDate DATETIME NOT NULL,
RepeatTypeID INT NOT NULL, // Daily, Weekly, Monthly, None
RepeatCount INT NOT NULL,
DayOn INT NOT NULL, // can be a calculated field based on start date using DAY function
)

我相信这可以捕获您所有的日程安排选项。

关于sql - 存储计划信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36707131/

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