私はphpとmysqlを使ってイベントカレンダーのプロジェクトをやっています。
1 日 1 時間ごとにイベントを含めようとすると、データベースが膨大なサイズになるのではないかと疑っています。過去と未来の出来事を毎日見たり参照したりする必要があるからです。では、このような状況でデータベースのサイズを維持するために使用できる手法は何ですか?
私はphpとmysqlを使ってイベントカレンダーのプロジェクトをやっています。
1 日 1 時間ごとにイベントを含めようとすると、データベースが膨大なサイズになるのではないかと疑っています。過去と未来の出来事を毎日見たり参照したりする必要があるからです。では、このような状況でデータベースのサイズを維持するために使用できる手法は何ですか?
最近プロジェクトで使用したテーブル構造は次のとおりです。
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;
イベントは、開始日と終了日の間にカレンダーに描画されます。これにより、イベントが1行に保持されます。MySQLは何百万もの行を処理できるので、スペースが不足することはないと思います。
1時間ごとに「何か」を保存することに関心があるのはなぜですか。イベントの開始時刻と終了時刻を保存します。終日イベントの場合は、開始を午前 0 時に設定し、終了を翌日の午前 0 時に設定します。その後、データベースはイベントの数に比例して大きくなります。1日の時間に比例しません。そして、すべてのイベントを「どこかに」保存することから逃れることはできません