zoukankan      html  css  js  c++  java
  • 城市数据库设计流程

    城市功能

     

    city 最高级

    中国 其他州  (弄出 demo)

    city 最低级

    市;(限制任务的 city 为这个级别)

     

    数据库

     

    数据库字段

    用途

    定位城市:州—城市。 name, data_level,

    推导出热门: 搜索次数。 中国—中国+1; 广州—广州+1;

     

    导入数据

    手动导入中国主要城市、美洲主要城市

    最后

    考虑如何自动导入

    编写自动导入脚本

     

    搜索各国行政区划分

    中国

    其他主要大洲及国家。

    如果只需要部分数据,由需求方提供最好,可以参考旅游网站的热门目的地

    如果需要很多数据,通过  世界各国行政区域和城市人口 进行爬虫?

    谷歌搜索 `全球行政区划分`,没有找到

    谷歌搜索 `全球行政区划分 sql`,能够找到。

     

     

    数据库关系

    city 表关系

    自联接外键关系

    recruit 与 city 表关系

    多对多

     

    传递给前端

    国内以及其他州的树结构

     

    常驻城市

    多对多

     

    任务城市

    多对多

     

    搜索流程

    单个city

    1. 传入 city=中国
    2. 搜索 city = City.object.filter(city=‘中国’)
    3. 展开 city 直到最低级,这里为中国所有城市
    4. 搜索含有这个城市的任务

    多个 cities

    1. 传入 city=中国|日本
    2. 查找出中国,日本
    3. 展开中国、日本到一个 set 里面
    4. 含有这个城市的任务

    获取 name 下级的所有城市

    获取直到最后一个级别的城市。

    同一个 root 下面的叶子级别也可能不相同。

    限制

    用户、任务中的城市级别只能选择 leaf 级别的。

    这样会引起说明架构问题

    缓存数据

    由于要从数据库中递归查找,所以速度会很慢,要十几秒。由于这个时序性要求不高,可以使用redis做缓存。

  • 相关阅读:
    滚动条去掉
    js 类继承extends
    html标签分类
    Freemarker模板引擎
    关于SpringMVC控制器的一点补充
    Maven的使用
    多层嵌套的json数据
    前后端数据交互之数据接口
    ES6浅谈之Promise
    ES6(阮一峰)学习总结
  • 原文地址:https://www.cnblogs.com/jay54520/p/6644291.html
Copyright © 2011-2022 走看看