我有三个日历功能表。
说event
表格有event_id
和description
等。
event_schedule
表格包含event_id
和event_start_date
以及event_end_date
。
event_repeat
表格包含event_Schedule_id
和event_start_date
以及
repeats
(可以是每周,每月,每天,每年)和repeat_every
(1,2,3这是间隔)
repeat_on
(星期一,星期二,星期三,等等,有时空白)和
starts_on
(开始日期与event_schedule表中的相同日期)和ends_never
(继续进行)
end_occurences
(没有出现),
ends_on
是结束日期,
event_schedule_id
映射到事件计划表和
repeated_by_month
是(如果每月这将有助于确定本月的开始是本周结束)
请找到表结构
CREATE TABLE events
(
event_id serial NOT NULL,
event_name text,
city text,
description text,
active_status text,
discount text,
user_id integer,
inserted_date timestamp without time zone,
modified_date timestamp without time zone,
state text,
CONSTRAINT event_pkey PRIMARY KEY (event_id ),
CONSTRAINT event_user_id_fkey FOREIGN KEY (user_id)
REFERENCES users (user_id) MATCH SIMPLE
ON UPDATE NO ACTION ON DELETE CASCADE
)
CREATE TABLE event_schedules
(
schedule_id serial NOT NULL,
schedule_mode text,
start_date date,
end_date date,
start_time time without time zone,
end_time time without time zone,
repeat text,
activity_id integer,
business_hours text,
modified_date timestamp without time zone,
CONSTRAINT event_schedules_pkey PRIMARY KEY (schedule_id ),
CONSTRAINT event_schedules_event_id_fkey FOREIGN KEY (event_id)
REFERENCES events (event_id) MATCH SIMPLE
ON UPDATE NO ACTION ON DELETE CASCADE
)
CREATE TABLE event_repeats
(
repeat_id serial NOT NULL,
repeats text,
repeat_every text,
repeat_on text,
starts_on date,
ends_never boolean,
end_occurences text,
ends_on date,
event_schedule_id integer,
modified_date timestamp without time zone,
repeated_by_month boolean,
repeat_week text,
CONSTRAINT event_repeats_pkey PRIMARY KEY (repeat_id ),
CONSTRAINT event_repeats_event_schedule_id_fkey FOREIGN KEY (event_schedule_id)
REFERENCES event_schedules (schedule_id) MATCH SIMPLE
ON UPDATE NO ACTION ON DELETE CASCADE
)
答案 0 :(得分:0)
我认为你将不得不使用“重复”时间表仅用于初始调度。事情可能会被重新安排,所以你不想依赖它作为权威。定期(可能每月一次?)您可能想要通过并使用该逻辑来创建新事件。要完成这项工作,您必须在调度表中添加“most_recent_repeat”字段等,这可以是日期或自联接。无论如何,每个事件都应该为每次事件都有自己的调度条目。
如果这不能回答你的问题,你不清楚你在问什么。也许你可以澄清一下?