可能是数据库关系周期

时间:2013-07-17 20:30:59

标签: database database-design relational-database database-schema

我的问题与循环关系有关,我需要解决数据库模式以便做最佳实践,它将用于跟踪车辆系统

我的问题描述:

  1. 路线可以包含一个或多个栅栏,栅栏可以包含一条或多条路线
  2. 路线指定了一些车辆(考虑车辆可能是部分路线或其他路线)
  3. 当一条包含围栏的路线分配了车辆时,我需要控制车辆何时通过围栏;然后我需要存储如果在每辆车上设置围栏,以便在车辆进入围栏时进行比较
  4. 我已经通过这种方式解决了这个问题,但是我不确定这是一个好习惯,如果不是,哪个是这个问题的最佳做法?

    cycle problem

1 个答案:

答案 0 :(得分:0)

  

1 - 路线可以包含一个或多个围栏,并且围栏可以包含一条或多条路线

    Route --< RouteFenceRelationship >-- Fence

    "RouteFenceRelationship"
    PK RouteFenceRelationshipId
    FK RouteId
    FK FenceId

许多关系都不能很好地工作,我强烈建议使用关系表来定义哪些路由包含哪些围栏。

  

2 - 一条路线分配了一些车辆(考虑车辆可能是部分或其他路线)

    Vehicle --< VehicleRouteRelationship >-- Route

    "VehicleRouteRelationship"
    PK VehicleRoutRelationshipId
    FK VehicleId
    FK RouteId

这里也是相同的,关系表,以避免多对多关系带来的问题。

  

3 - 当包含围栏的路线分配了车辆时,我需要控制车辆何时通过围栏;然后我需要存储每辆车上是否设置围栏,以便在车辆进入围栏时进行比较

    Fence --< FenceVehiclePassEvent >-- Vehicle

    "FenceVehiclePassEvent"
    PK FenceVehiclePassEventId
    FK FenceId
    FK VehicleId
    Timestamp

我真的不明白你的第三点,但是你可以在这个表格中添加一个条目,包括车辆,围栏和经过的时间。那是你在找什么?