我正在使用 php 和 mysql 在事件日历上做一个项目。
我怀疑,当我们尝试在每天的每个小时中包含事件时,它会使数据库变得庞大。因为我们需要每天查看/参考过去和未来的事件。有时,我们需要一些事件持续更多天。那么,在这种情况下,我们可以使用什么技术来保持数据库的大小呢?
我正在使用 php 和 mysql 在事件日历上做一个项目。
我怀疑,当我们尝试在每天的每个小时中包含事件时,它会使数据库变得庞大。因为我们需要每天查看/参考过去和未来的事件。有时,我们需要一些事件持续更多天。那么,在这种情况下,我们可以使用什么技术来保持数据库的大小呢?
这是我最近用于一个项目的表结构:
CREATE TABLE `event` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(255) DEFAULT NULL,
`description` text,
`startdate` datetime DEFAULT NULL,
`enddate` datetime DEFAULT NULL,
`location` text,
`price` double(8,2) DEFAULT NULL,
`user_id` int(11) DEFAULT NULL,
`created_date` datetime DEFAULT NULL,
`seats` int(11) NOT NULL,
`show_map` tinyint(1) DEFAULT '1',
`latitude` varchar(65) DEFAULT NULL,
`longitude` varchar(65) DEFAULT NULL,
`contact` varchar(255) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
事件在开始日期和结束日期之间的日历上绘制,这将事件保持在一行。MySQL 能够处理数百万行,所以我认为您不会用完空间。
你为什么关心每小时存储“东西”。存储事件的开始和结束时间。对于一整天的事件,将开始设置为午夜,并在第二天午夜结束。然后您的数据库与事件数量成比例增长;与一天中的小时数不成比例。而且您不可能逃脱将所有事件存储在“某处”