首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >数据库设计--我怎样才能有一个循环的数据库条目?

问数据库设计--我怎样才能有一个循环的数据库条目?
EN

Stack Overflow用户
提问于 2012-03-08 05:13:36
回答 1查看 772关注 0票数 1

我目前正在使用FullCalendar JQuery模块来允许用户创建个人时间表。将事件添加/更新到SQL Server数据库。这工作得很好。

我正在尝试创建一个设施,其中每个用户都有一个数据库,其中存储了他们一年中的所有事件,其中一些事件可以重复发生,每周都会发生。

然后,我希望用户能够根据他们的时间表中可用的时隙来组织与其他用户的会议。

我不确定如何将这些重复事件集成到我的系统中,或者我的算法如何处理这些重复事件。

我目前的设计是:

代码语言:javascript
复制
CREATE TABLE Users (
  user_id INT NOT NULL AUTO_INCREMENT,
  email VARCHAR(80) NOT NULL,
  password CHAR(41) NOT NULL,
  PRIMARY KEY (user_id)
);

CREATE TABLE Events (
    event_id INT NOT NULL AUTO_INCREMENT,
    title VARCHAR(80) NOT NULL,
    description VARCHAR(200),
    start_time DATETIME,
    end_time DATETIME,
    group_id INT NOT NULL,
        recurring boolean
);

CREATE TABLE Groups (
    group_id INT NOT NULL,
    user_id INT NOT NULL
);

这是否足够呢?我将如何拥有它,以便在每周的日历上呈现重复的事件?如果我缺少任何细节,请联系我!非常感谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-03-08 06:26:59

您可以使用类似以下内容:

代码语言:javascript
复制
SELECT  *
FROM    Events
WHERE   Recurring = 0
UNION
SELECT  Event_ID,
        Title,
        Description, 
        DATEADD(WEEK, Interval, Start_Time) [Start_Time],
        DATEADD(WEEK, Interval, End_Time) [End_Time],
        Group_ID,
        Recurring
FROM    Events, 
        (   SELECT  ROW_NUMBER() OVER(ORDER BY Object_ID) [Interval]
            FROM    SYS.ALL_OBJECTS
        ) i
WHERE   Recurring = 1
AND     Interval <= 52 -- reccurs for 1 year

这将使所有事件重复52周(或您想要的任何时间段)。

顺便说一句,在问题中您提到了sql server,并且您已经将问题标记为SQL server,但是您的所有语法似乎都是MySQL (AUTO_INCREMENT,布尔数据类型)。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9609153

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档