2013-03-11 41 views
1

我正在使用php和mysql在事件日历上做一个项目。事件日历的数据库大小

我怀疑,当我们试图在每一天的每个小时中包含事件时,它会使数据库变得很大。因为我们需要每天查看/参考过去和将来的事件。有时,我们需要更多日子的事件。那么,在这种情况下,我们可以使用什么技术来保持数据库的大小?

回答

2

这里有一个表结构我最近使用的项目:

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有能力处理数百万行,所以我不认为你会用尽空间。

+2

要进一步重复此操作,您不会耗尽空间。如果您甚至开始扩展到您不必担心的地步,那么您可以使用多种解决方案(从更好的硬件和优化您的方案/查询到更复杂的解决方案(如水平缩放))。 – 2013-03-11 05:31:27

0

为什么你关心每小时存储'某物'?存储事件的开始和结束时间。长达一天的活动将开始时间设置为午夜,并在第二天午夜结束。然后你的数据库与事件的数量成比例增长;与一天中的小时数不成比例。而且你不可能逃避将所有事件存储在某个地方

+0

我觉得我必须指出,这个答案实际上是Rob M.给出的答案的完整副本。 – 2013-03-11 06:10:03