使用外键和Django更新MySQL数据库

时间:2013-12-26 00:59:02

标签: mysql database django database-design database-schema

我正在构建我正在开始的数据库项目的布局。自从我上次使用构建外键等工作已经超过一年,并且称我生锈是一种轻描淡写。

因此,对于我的数据库,我们将会有一张包含车辆的桌子和一张位置表。每辆车都有一个id(VehID),一个位置(位置)和一个名称(标题)。位置表具有以下字段:LocID,该位置所针对的车辆ID(VehID),其是来自车辆数据库的外键,还具有车辆的纬度和经度。

表格如下:

-----------
| vehicle | - //Holds all vehicles 
-----------
|  VehID  | - PK, auto_incrementing
|Locations| - //should link to most current location, with location.VehID == vehicle.VehID
|  Title  | - varchar(40)
-----------

-----------
|location |   - //Holds all locations where a vehicle has been
-----------
|LocID    |   - PK, auto_incrementing
|VehID    |   - Foreign Key from vehicle
|Latitude |   - decimal(10,6)
|Longitude|   - decimal(10,6)
-----------

如果它有助于我使用django框架进行ORM。每次我尝试向位置表添加新条目时,在尝试设置为VehID时都会出错......我将如何设置此项?如果我不能,我怎么能连接车辆和位置字段?就像我说的那样..已经有一段时间了。

1 个答案:

答案 0 :(得分:1)

以下是我如何解决这个问题:

  • 删除vehicle.Locations(否则两个表之间存在循环关系)
  • timestamp字段添加到location,其中包含车辆到达特定位置的时间
  • 确保在vehicle
  • 中引用条目之前始终在location中插入条目

要查找车辆的当前位置,请在GROUP BY上进行vehicle.VehId搜索,然后选择时间戳小于当前时间的那个。