我们的架构如下所示:
- 表
tblTrip
:存储开始和结束行程日期和时间 - table
tblTripData
: 保存所有行程数据 - table
tblTripEvent
:存储与特定行程相关的事件。
然后我们还有两个表tblTripEmail
和tblTripSms
,它们存储了根据事件发送的电子邮件和短信。
我们希望仅保留 3 个月前的行程数据,我们希望不时删除并存档其余的以存储在离线数据库中。
存储在离线数据库中的最佳机制是什么?我不确定分区会有什么帮助,因为这些表在这里是相互链接的。
下面是 tblTripData 的表 desc
CREATE TABLE IF NOT EXISTS `tblTripData` (
`tripDataID` int(11) NOT NULL AUTO_INCREMENT,
`tripID` int(5) NOT NULL,
`deviceSerialNumber` varchar(20) NOT NULL,
`latitude` double NOT NULL,
`longitude` double NOT NULL,
`speed` float NOT NULL,
`course` int(3) NOT NULL,
`gpsdateTimer` datetime NOT NULL,
`insertDateTime` datetime NOT NULL,
`odoMeter` float NOT NULL DEFAULT '0',
`driverID` int(5) NOT NULL,
`eventAlertID` int(11) NOT NULL DEFAULT '0',
`tripDataInsertDateTime` datetime NOT NULL
PRIMARY KEY (`tripDataID`),
KEY `dateTime` (`gpsdateTimer`),
KEY `tripID` (`tripID`),
KEY `eventAlertID` (`eventAlertID`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;