考虑我为数据库建模以管理停车场的情况。
Company
,ParkingLot
,Location
,Vehicle
和
Reports
。Company
有多个ParkingLots
,而ParkingLot一次可以有多个Vehicles
。ParkingLot
位于属于某个县的地区。一个县可以有一个或多个区域,为此我决定在名为Location
的表中使用递归关系。Reports
是为ParkingLots
计算收入的,我假设它是按月计算的,因为文字没有指定。Reports
应该可以按县过滤,即从2号县的Lots中选择本月的所有收入。请原谅我丑陋的图表,但这是我带来的解决方案。
我进行了一些基本的测试,似乎可以接受作为解决方案,但我担心我的模型能否支持我的最后一点。这是一个县的停车场的报告。停车场不是分配给一个县,而是分配给一个区(分配给各自的县)。
这是一个可行的解决方案吗?我做过一些严重的疏忽吗?
编辑:
获取FK id_location与FK locate_at = PK id_location(county)匹配的所有Lots是否可行?
EDIT2:
虽然递归表可能有点复杂,但不同表上地址的不同部分采用相同数量的步骤来生成报告?
在递归中:获取所有选定的县区,然后在这些县的每个停车场获取存储的报告。
县和区表:我仍然需要获得所有县区的列表才能获得报告列表。但是,对这个模型的查询不会那么令人困惑。
还在报告表中添加了report_date
。
答案 0 :(得分:1)
一些意见:
REPORT
是否需要成为一张桌子?你应该记录每辆车在车辆桌上支付多少钱?如果是这样,您可以通过查询创建报告,而不需要REPORT
表。LOCATION
上使用递归关系会使查询比使用显式表更困难。你真的需要这种复杂性吗?REPORT
表格,那么最好在那里放一个月,或者只能存储一个月的数据。