数据库ID随条目的增加而增加

时间:2019-01-29 11:38:05

标签: python database

我在数据库中有条目和关系,例如,我有一个与驾驶员关系的Vehicle数据库。当驱动器隶属于车辆时,它会在车辆历史记录中使用vehicle_iddriver_id创建一个会话。

但是当我删除这辆车时,我们要承认它是vehicle_id = 4,它是最后一辆车,如果我创建其他车,它将自动将4归因于新车,因此旧车之间的所有关系现在将归因于新的...我不知道我是否足够清楚

那么,您认为我是否必须将车辆保留在数据库中,即使为了保留ID数而将其删除还是您有特定的解决方法?

谢谢

3 个答案:

答案 0 :(得分:2)

将车辆ID设置为自动递增,因此当您有新车辆时,它将具有新ID。在表中为vehicle_active创建一个新列,并将其设置为1或0。

答案 1 :(得分:2)

如果ID列由数据库自动递增,则不会发生这种情况。

如果您是自己进行ID管理(例如new_id = highest_id + 1),那不应该!

此外,您还应该研究数据库系统如何进行外键引用,这样就不能删除其他行所引用的行(这样就不会发生这种情况)。

答案 2 :(得分:1)

如果有机会再次使用该车辆,而不是删除该车辆,则可以选择保留该行并实现一个状态列。当用户“删除”车辆时,您可以更新状态。这也可以方便地报告,因为您不需要清除数据。

想象一个场景,您想知道本月哪些司机换了车。作为一个粗略的示例,您可以执行以下操作:

SELECT * FROM vehicles WHERE deleted_date BETWEEN xxx AND xxx AND vehicle_status = 'DELETED';

在现有查询中,您只需选择状态列!='已删除'的所有内容即可。

唯一的缺点是您必须存储其他数据,但是可以实施一个系统,在设定的时间段后从数据库中清除旧记录。