在SQL模式中保留大量时间数据

时间:2019-02-12 19:44:14

标签: sql sqlite date time

我正在学习sql,作为练习,我试图了解将时间数据保存在sqlite中的最佳方法是什么。例如,我可以创建一个数据库来跟踪汽车和汽车零件以及它们何时发生故障的时间日志。背景架构:有一辆汽车(可能会发生故障),一辆汽车有零件(可能会发生故障),我想在该汽车或其零件之一运行或出现故障时记录此数据。

我的架构代码在这里(和fiddle):

create table car (
name varchar,
id int primary key
);


create table car_part (
car_id int,
part_name varchar,
part_id primary key
);


create table last_checked_time_log (
checked_time datetime,
failed_or_operational boolean,
car_id int,
foreign key(car_id) references car(car_id),
primary key (checked_time, failed_or_operational, car_id)
);

此架构是实现此目标的好方法吗?

当前,表last_checked_time_log只能容纳汽车或car_part。但是我希望它能够同时保持,因为汽车或car_part都可能发生故障(我不在乎汽车是否由于汽车部件而发生故障。我只是想简单一点-整车失败或一个car_part失败)。

此外,在当前模式下,我认为如果我添加很多汽车(假设一个城市中有1000辆汽车)以及所有相应的汽车零件,那么last_checked_time_log将在几天内变得庞大。有没有更好的方法可以做到这一点,或者这只是在这种情况下将如何工作?

0 个答案:

没有答案