日期:2014-05-18 浏览次数:20402 次
现在设计一个收费系统,需要保存一些收费标准, 1、从城市到城市的收费 2、是省份到省份的收费 3、从城市到省份的收费 4、从省份到城市的收费 城市和省份是从属关系,如果你要 查询从广州到成都的收费标准,即使数据表没有广州到成都的标准,但是只要存在广东到四川,或广东到成都的数据,那么这些数据都是有效的。 然而在设计这个收费表service_charge的时候,出现了一些问题,表结构设计如下 编号 源id 目标Id 收费标准 id source_ref_id destination_ref_id charge_rate source_ref_id destination_ref_id列引用自city表或province表的id值 设想界面查询时提供源和目的地的city_id或province_id,则查询语句为 select * from service_charge where (source_ref_id = @source_city_id or source_ref_id = @source_province_id) and (destination_ref_id = @destination_city_id or destination_ref_id = @destination_province_id) 但是现在觉得使用 or 效率很低,请问这个表怎么设计能够让效率最高?如果一张表不行,可否设计为多张表