首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何管理数据库中的日程数据结构?

如何管理数据库中的日程数据结构?
EN

Stack Overflow用户
提问于 2015-08-18 15:51:40
回答 1查看 642关注 0票数 0

如何在数据库中管理日程安排??

我有应用程序,它的所有者注册的时间表数据和用户可以注册的单位为30分钟的时间表。(如会议室预订服务)

在这种情况下。

如何将数据存储在数据库中??

例如,所有者输入如下所示

代码语言:javascript
复制
8/23 14:30-17:00
8/27 12:00-14:00

idea1)将每个时间表分成30分钟(多行)

代码语言:javascript
复制
8/23 14:30-15:00
8/23 15:00-15:30
8/24 15:30-16:00
.
.
8/27 13:30-14:00

idea2)

分成天(2行)

代码语言:javascript
复制
8/23 14:30-17:00
8/27 12:00-14:00

idea3)

为每个注册表创建表行。

idea1很容易理解哪个时间段已经预订或没有预订。如果你想像这样取消

代码语言:javascript
复制
cancel 8/23 15:30-16:00

它很容易处理。

然而,如果你想这样放,‘每周四重复’是不可能的。

idea3It可以实现“每周四重复”,但对预订或取消的理解非常复杂。

idea2介于两个之间。

如何在数据库中存储日程安排数据??

谷歌如何存储谷歌日历??

EN

回答 1

Stack Overflow用户

发布于 2015-08-18 16:02:50

我通常有一个表,其中每一行都是一个“注册”。在行中,您存储开始日期/时间和结束日期/时间,当然还有关于“注册”的任何其他信息。例如:

代码语言:javascript
复制
CREATE TABLE `registration` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `start` datetime NOT NULL,
  `end` datetime NOT NULL,
  `comment` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

通过这种方式,您可以随时使用如下查询来查找是否存在某些注册:

代码语言:javascript
复制
SELECT * FROM `registration`
WHERE `start` <= '2015-08-18 14:00:00'
AND `end` >= '2015-08-18 14:00:00'

一旦你有了注册的id,取消注册就很容易:

代码语言:javascript
复制
DELETE FROM `registration` WHERE `id` = 3

存储日期和时间而不是使用固定时隙的一个重要优势是,您可以轻松地定义比30分钟更高精度的时隙。

谷歌如何存储他们的数据,当然是他们的商业秘密。

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

https://stackoverflow.com/questions/32066628

复制
相关文章

相似问题

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