我正在为一家大公司构建一个基于 Web 的应用程序,我对数据库部分有疑问。先给大家介绍一下情况:
有 4 个表是用外键连接的:
表 1:路线清单
roadlist (roadListNumber, vehicleId, driverId, date, start, end, fuel,...)
- roadListNumber - 主键
- 车辆 ID - 外键
- driverId - foreignKey
表 2:驱动程序
drivers(driverId, firstName, middleName, lastName, and so on...)
- driverId - 主键
表 3:车辆
vehicles(vehicleId, group, type, model, gpsDevice, and so on...)
- 车辆 ID - 主键
表 4:cargo_zones
cargo_zones(zoneId, name, permiter, area, latitures, longtitudes, and so on...)
- zoneId - 主键
表 5:roadLists_cargoZones_mapping
roadLists_cargoZones_mapping(roadListNumber, zoneId, spentFuel, tkm, mcm,...)
- roadListNumber - foreignKey
所以这里是问题:
如果我从驱动程序表中删除驱动程序,则 roadlists 表中的值将设置为 NULL,否则将根据约束删除整行。在第一种情况下,如果有人列出某个日期的所有报告,则将其设置为 NULL,他将无法看到值班司机的姓名,因为其 ID 未链接到驱动程序表中的任何行。在秒的情况下,如果从 roadlists 表中删除整行,则系统会丢失重要数据。
那么我该如何处理这种情况呢?