我目前正在使用FullCalendar JQuery模块来允许用户创建个人时间表。将事件添加/更新到SQL Server数据库。这很好。
我正在尝试创建一个设施,其中每个用户都有一个数据库,该数据库存储了一年中的所有事件,其中一些可以重复发生并且每周都会发生。
然后,我希望用户能够根据其时间表中的时间段与其他用户组织会议。
我不确定如何将这些重复发生的事件集成到我的系统中,或者我的算法如何与这些重复发生的事件一起使用。
我目前的设计是:
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
);
这是否足够?我将如何拥有它以便每周在日历上呈现定期事件?如果我缺乏任何细节,请询问!非常感谢你。
答案 0 :(得分:2)
您可以使用以下内容:
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服务器,但你的所有语法都显示为MySQL(AUTO_INCREMENT,布尔数据类型)。