1
sirgod 2018-03-03 21:12:45 +08:00 via iPhone
图数据库?
|
2
DavidNineRoc 2018-03-03 21:19:09 +08:00
不久多对多关联?价格标志位
|
3
DavidNineRoc 2018-03-03 21:19:20 +08:00
心疼我自己的输入法
|
4
akira 2018-03-03 21:38:26 +08:00
看城市数量,如果城市数量在一千以内,这样存应该就足够了
|
5
rootliang OP |
6
rrfeng 2018-03-03 23:12:06 +08:00 1
表 1
A-B 记录 1 A-B 记录 2 B-A 记录 1 表 2 A-B 平均 |
7
DavidNineRoc 2018-03-04 10:21:58 +08:00 1
cities_table
------------- id name 1 A 2 B 3 C ########################## city_records --------------- city1_id, city2_id avg_time data --------------------------------------------- 1 2 ? 记录一 2 1 ? 记录二 3 1 ? 记录三 |
8
mdluo 2018-03-04 12:29:28 +08:00 1
如果数据库提供了复合键作为主键的功能,自己把两个城市的 ID 存成复合主键就好了。
如果没有复合主键的功能,那么考虑两个城市为一个 Pair,用个 Unsigned Int 32 作为主键,高 16 位是第一个城市的 ID,低 16 位是第二个城市的 ID,总共可以覆盖 2^16 = 65536 个城市了,其他字段存“平均时效”和其他信息。 主键可以利用数据库的索引,直接按两个城市查询的时候速度最快,也能在单表内对“平均时效”这种信息做排序和查询等操作。 |