按地址位置过滤报告的数据库设计
Database design to filter report by address location
考虑一下我正在为管理停车场的数据库建模的情况。
- 实体:
Company
、ParkingLot
、Location
、Vehicle
和
Reports
.
- 一个
Company
有多个ParkingLots
,一个停车场一次可以有多个Vehicles
。
- 一个
ParkingLot
位于一个区,属于一个县。一个县可以有一个或多个区,为此我决定在 table 中使用递归关系,称为 Location
.
Reports
是为了ParkingLots
计算收入的,我假设是按月计算,因为文中没有说明。
Reports
应该可以按县过滤,即Select本月所有收入来自2号县的地块。
请原谅我丑陋的图表,但这是我提供的解决方案。
我运行进行了一些初步测试,似乎可以接受table作为解决方案,但我担心我的模型是否可以支持我提出的最后一点。这是一个县的停车场的报告。停车场不是分配给一个县,而是分配给一个区(分配给各自的县)。
这是可行的解决方案吗?我有什么严重的疏忽吗?
编辑:
是否可以获取 FK id_location 与 FK located_at = PK id_location(县)匹配的所有地块?
编辑 2:
虽然递归 table 可能有点复杂,但不同 table 上的地址的不同部分是否需要相同数量的步骤来生成报告?
在递归中:获取所有选定县的地区,然后为这些县的每个停车场获取存储的报告。
县区Table:我还得把全县所有的区弄个名单才能拿到报告单。不过,对该模型的查询不会那么混乱。
还在报告中添加了 report_date
table。
一些评论:
REPORT
必须是 table 吗?您是否应该记录每辆车在车辆 table 中支付了多少钱?如果是这样,您可以通过查询创建报告,并且不需要 REPORT
table.
- 在
LOCATION
上使用递归关系比使用显式 table 更难查询。你真的需要这种复杂性吗?
- 如果确实需要
REPORT
table,那么最好把一个月放在那里,否则只能存储一个月的数据。
考虑一下我正在为管理停车场的数据库建模的情况。
- 实体:
Company
、ParkingLot
、Location
、Vehicle
和Reports
. - 一个
Company
有多个ParkingLots
,一个停车场一次可以有多个Vehicles
。 - 一个
ParkingLot
位于一个区,属于一个县。一个县可以有一个或多个区,为此我决定在 table 中使用递归关系,称为Location
. Reports
是为了ParkingLots
计算收入的,我假设是按月计算,因为文中没有说明。Reports
应该可以按县过滤,即Select本月所有收入来自2号县的地块。
请原谅我丑陋的图表,但这是我提供的解决方案。
我运行进行了一些初步测试,似乎可以接受table作为解决方案,但我担心我的模型是否可以支持我提出的最后一点。这是一个县的停车场的报告。停车场不是分配给一个县,而是分配给一个区(分配给各自的县)。
这是可行的解决方案吗?我有什么严重的疏忽吗?
编辑:
是否可以获取 FK id_location 与 FK located_at = PK id_location(县)匹配的所有地块?
编辑 2:
虽然递归 table 可能有点复杂,但不同 table 上的地址的不同部分是否需要相同数量的步骤来生成报告?
在递归中:获取所有选定县的地区,然后为这些县的每个停车场获取存储的报告。
县区Table:我还得把全县所有的区弄个名单才能拿到报告单。不过,对该模型的查询不会那么混乱。
还在报告中添加了 report_date
table。
一些评论:
REPORT
必须是 table 吗?您是否应该记录每辆车在车辆 table 中支付了多少钱?如果是这样,您可以通过查询创建报告,并且不需要REPORT
table.- 在
LOCATION
上使用递归关系比使用显式 table 更难查询。你真的需要这种复杂性吗? - 如果确实需要
REPORT
table,那么最好把一个月放在那里,否则只能存储一个月的数据。