【发布时间】:2013-02-24 00:33:35
【问题描述】:
我正在为一家大公司构建一个基于 Web 的应用程序,我对数据库部分有疑问。先给大家介绍一下情况:
有4个表是用外键连接的:
表 1:路线清单
roadlist (roadListNumber, vehicleId, driverId, date, start, end, fuel,...)
- roadListNumber - 主键
- vehicleId - foreignKey
- driverId - foreignKey
表 2:驱动因素
drivers(driverId, firstName, middleName, lastName, and so on...)
- driverId - primaryKey
表 3:车辆
vehicles(vehicleId, group, type, model, gpsDevice, and so on...)
- vehicleId - 主键
表 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 表中删除整行,系统会丢失重要数据。
那么我该如何处理这种情况呢?
【问题讨论】:
标签: mysql database database-design