Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
具有自定义信息的MySQL日历重复事件_Mysql_Database Design_Calendar - Fatal编程技术网

具有自定义信息的MySQL日历重复事件

具有自定义信息的MySQL日历重复事件,mysql,database-design,calendar,Mysql,Database Design,Calendar,我正在创建一个预订管理系统,允许它创建经常性事件 四处搜索,我了解到创建“重复模式”将是DB设计的最佳想法,如下所述: 我的问题来自这样一个事实,即我需要为每个单独的事件添加一些数据,例如是否为每个单独的事件、确认、注释等支付了款项 这将最终创建一个不同的表,为每个创建的事件创建一行。换句话说,物理地为每个事件添加一行,而不是使用“重复模式” 我看不到在DB for 1事件中避免1行的解决方案。有什么建议吗?在我的系统中,每个用户不会有很多事件,比如说每周最多有50个事件。假设您已经有一个表来存

我正在创建一个预订管理系统,允许它创建经常性事件

四处搜索,我了解到创建“重复模式”将是DB设计的最佳想法,如下所述:

我的问题来自这样一个事实,即我需要为每个单独的事件添加一些数据,例如是否为每个单独的事件、确认、注释等支付了款项

这将最终创建一个不同的表,为每个创建的事件创建一行。换句话说,物理地为每个事件添加一行,而不是使用“重复模式”


我看不到在DB for 1事件中避免1行的解决方案。有什么建议吗?在我的系统中,每个用户不会有很多事件,比如说每周最多有50个事件。

假设您已经有一个表来存储重复事件,例如

table recurrent_event 
id bigint
start date
interval int -- as simple or complex as needed
现在,您的应用程序无论如何都需要一些逻辑来计算哪些单个事件将由此产生,例如显示单个事件的列表。我不会在数据库中存储所有这些单事件的列表,因为最初,该列表不会添加任何有用的信息。此外,该列表必须在某个地方结束,因此它可能无法包含来自重复事件的所有单个事件。只有在实际输入事件的一些附加信息时,才需要插入单个事件的记录。对于这些单一事件,我将创建一个

 table single_event_additional_info
 id bigint
 recurrent_event_id bigint
 single_event_date date
 additional-information ... whatever datatype fitting

这可以追溯到重复发生的事件。因此,在处理周期性事件时,从该表中选择所有引用该事件的单个事件将生成与周期性事件相关的所有信息。其余单个事件仍将通过计算确定。

感谢您的回复。您是否可以在“单一事件附加信息”表示例中添加一个字段,指出单一事件的日期,否则附加信息将指出整个重复事件周期,因此每个单一事件