数据库设计按地址位置过滤报告

时间:2015-11-11 19:27:56

标签: database database-design data-modeling erd

考虑我为数据库建模以管理停车场的情况。

  • 实体:CompanyParkingLotLocationVehicleReports
  • Company有多个ParkingLots,而ParkingLot一次可以有多个Vehicles
  • A ParkingLot位于属于某个县的地区。一个县可以有一个或多个区域,为此我决定在名为Location的表中使用递归关系。
  • Reports是为ParkingLots计算收入的,我假设它是按月计算的,因为文字没有指定。
  • Reports应该可以按县过滤,即从2号县的Lots中选择本月的所有收入。

请原谅我丑陋的图表,但这是我带来的解决方案。

enter image description here

我进行了一些基本的测试,似乎可以接受作为解决方案,但我担心我的模型能否支持我的最后一点。这是一个县的停车场的报告。停车场不是分配给一个县,而是分配给一个区(分配给各自的县)。

这是一个可行的解决方案吗?我做过一些严重的疏忽吗?

编辑:

获取FK id_location与FK locate_at = PK id_location(county)匹配的所有Lots是否可行?

EDIT2:

虽然递归表可能有点复杂,但不同表上地址的不同部分采用相同数量的步骤来生成报告?

在递归中:获取所有选定的县区,然后在这些县的每个停车场获取存储的报告。

县和区表:我仍然需要获得所有县区的列表才能获得报告列表。但是,对这个模型的查询不会那么令人困惑。

还在报告表中添加了report_date

1 个答案:

答案 0 :(得分:1)

一些意见:

  • REPORT是否需要成为一张桌子?你应该记录每辆车在车辆桌上支付多少钱?如果是这样,您可以通过查询创建报告,而不需要REPORT表。
  • LOCATION上使用递归关系会使查询比使用显式表更困难。你真的需要这种复杂性吗?
  • 如果您确实需要REPORT表格,那么最好在那里放一个月,或者只能存储一个月的数据。