范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

中国省市县级联菜单,设计数据库表,把开源项目转换SQL入库

  #头条创作挑战赛#目录1,关于省市县数据2,使用china-regions项目3,总结1,关于省市县数据
  github上有中国的省市县开源项目,找到一个特别评分高的项目2.9K星星:
  https://github.com/wecatch/china_regions
  我修改的代码放到这里了,包括脚本和SQL:
  https://github.com/freewebsys/china_regions_lite
  设计思路,这个项目有多种方式的接入。
  1,json文件,放服务端客户端都行,直接数据写死了。
  2,数据库的ddl文件直接存储到数据库中。
  个人偏向第二中,存储到数据库中,可以方便维护点,同时在做数据处理分析的时候。
  可以直接 join 表,数据的修改查询也很方便。 2,使用china-regions项目git clone https://github.com/wecatch/china_regions.git  cd china_regions/mysql  # 有数据库相关脚本
  但是现在有个问题,这个数据库的脚本是分3个表的,本身数据量也不大,没有必要分成三个表。
  于是合并成一个 region 表得了。同时发现这个地区编码,为了兼容乡村使用的是 12 位的。
  如果要是使用省市区,使用前 6 位就可以了。
  数据库表设计: CREATE TABLE `region` (   `id` varchar(10) NOT NULL COMMENT "地区主键编号",   `name` varchar(50) NOT NULL COMMENT "地区名称",   `parent_id` varchar(10) DEFAULT NULL COMMENT "地区父id",   `level` int(2) DEFAULT NULL COMMENT " 1-省、自治区、直辖市 2-地级市, 3-市辖区、县",   PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT="地区表"; -- 默认,父节点和level 都是0
  但是现在有个问题,没有提供相关的数据库文件,是拆分的。
  不用担心,作者已经有个python 的脚本了。直接修改 python 代码,自定义生成一个表就行了。
  上pyhton3脚本,修改下官方的脚本就可以了: # -*- coding:utf-8 -*- import json import os import codecs from collections import OrderedDict  ddl = """  CREATE TABLE `region` (   `id` varchar(10) NOT NULL COMMENT "地区主键编号",   `name` varchar(50) NOT NULL COMMENT "地区名称",   `parent_id` varchar(10) DEFAULT NULL COMMENT "地区父id",   `level` int(2) DEFAULT NULL COMMENT " 1-省、自治区、直辖市 2-地级市, 3-市辖区、县",   PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT="地区表";  """  sql_tmp =  "INSERT IGNORE INTO region ("id", "name", "parent_id", "level") VALUES ("%s", "%s", "%s", "%s"); " region_path = "mysql-region"  def make_data():     #只读取省市县数据。     source_file_list = ["county", "city",  "province" ]     for k in list(reversed(source_file_list)):         data = codecs.open("json/%s.json" % k, "r", "utf-8").read()         json_data = json.loads(data)         mysql_data_list = []          if k == "province":             for index, province in enumerate(json_data):                 tmp_id = province["id"]                 mysql_data = sql_tmp % (province["id"][0:6], province["name"], 0, 1)  # noqa                 mysql_data_list.append(mysql_data)          if k == "city":             index = 0             for province_id in sorted(json_data.keys()):                 for city in json_data[province_id]:                     index += 1                     mysql_data = sql_tmp % (city["id"][0:6], city["name"], province_id[0:6], 2)  # noqa                     mysql_data_list.append(mysql_data)          if k == "county":             index = 0             for city_id in sorted(json_data.keys()):                 for county in json_data[city_id]:                     index += 1                     mysql_data = sql_tmp % (county["id"][0:6], county["name"], city_id[0:6], 3)  # noqa                     mysql_data_list.append(mysql_data)          if k in ["province", "city", "county"]:             out_mysql = codecs.open(region_path + "/%s.sql" % k, "w", "utf-8")             index = 0             start = 0             while start < len(mysql_data_list):                 end = start + 1000                 out_mysql.write("".join(mysql_data_list[start:end]))                 start = end              out_mysql.close()   def main():      if not os.path.exists(region_path):     	os.mkdir(region_path)     make_data()   if __name__ == "__main__":     main()
  然后生成了省市区的相关的SQL代码:  INSERT IGNORE INTO region (`id`, `name`, `parent_id`, `level`) VALUES ("110000", "北京市", "0", "1"); INSERT IGNORE INTO region (`id`, `name`, `parent_id`, `level`) VALUES ("120000", "天津市", "0", "1"); INSERT IGNORE INTO region (`id`, `name`, `parent_id`, `level`) VALUES ("130000", "河北省", "0", "1"); INSERT IGNORE INTO region (`id`, `name`, `parent_id`, `level`) VALUES ("140000", "山西省", "0", "1"); INSERT IGNORE INTO region (`id`, `name`, `parent_id`, `level`) VALUES ("150000", "内蒙古自治区", "0", "1"); INSERT IGNORE INTO region (`id`, `name`, `parent_id`, `level`) VALUES ("210000", "辽宁省", "0", "1");  ....  INSERT IGNORE INTO region (`id`, `name`, `parent_id`, `level`) VALUES ("110101", "东城区", "110100", "3"); INSERT IGNORE INTO region (`id`, `name`, `parent_id`, `level`) VALUES ("110102", "西城区", "110100", "3"); INSERT IGNORE INTO region (`id`, `name`, `parent_id`, `level`) VALUES ("110105", "朝阳区", "110100", "3"); INSERT IGNORE INTO region (`id`, `name`, `parent_id`, `level`) VALUES ("110106", "丰台区", "110100", "3"); INSERT IGNORE INTO region (`id`, `name`, `parent_id`, `level`) VALUES ("110107", "石景山区", "110100", "3"); INSERT IGNORE INTO region (`id`, `name`, `parent_id`, `level`) VALUES ("110108", "海淀区", "110100", "3"); INSERT IGNORE INTO region (`id`, `name`, `parent_id`, `level`) VALUES ("110109", "门头沟区", "110100", "3");  .....  INSERT IGNORE INTO region (`id`, `name`, `parent_id`, `level`) VALUES ("110101", "东城区", "110100", "3"); INSERT IGNORE INTO region (`id`, `name`, `parent_id`, `level`) VALUES ("110102", "西城区", "110100", "3"); INSERT IGNORE INTO region (`id`, `name`, `parent_id`, `level`) VALUES ("110105", "朝阳区", "110100", "3"); INSERT IGNORE INTO region (`id`, `name`, `parent_id`, `level`) VALUES ("110106", "丰台区", "110100", "3"); INSERT IGNORE INTO region (`id`, `name`, `parent_id`, `level`) VALUES ("110107", "石景山区", "110100", "3"); INSERT IGNORE INTO region (`id`, `name`, `parent_id`, `level`) VALUES ("110108", "海淀区", "110100", "3"); INSERT IGNORE INTO region (`id`, `name`, `parent_id`, `level`) VALUES ("110109", "门头沟区", "110100", "3");  共  3644 条记录 ....
  数据都对 1 ,2 , 3 级数据都关联对了,同时对字符串进行裁剪了下,之前的区号是12 位,包括到乡镇。
  这个是6 位符合邮编代码。其他的数据就不用了。
  3,总结
  单个数据表可以解决 省市区的问题,要是到乡镇的话还是拆分成小表比较好。
  查询速度也快了。要是就着三级查询,合并成一张表就行。
  这个项目本地也可以启动
  cd location-demo
  npm install
  npm run start
  就可在 http://localhost:4200/ 访问了。

张怡宁昔日师姐出任美国队主教练,曾与王皓合作,夺得世乒赛铜牌北京时间2022年1月7日,美国乒协官宣高军出任乒乓球队主教练,全力协助美国队球员们提升竞技水平,发展职业乒乓球事业。01hr曾与王皓合作和刘国梁同框提到高军,相信还是有不少的球迷中国为什么竭力稳房价,而不是效仿美国日本戳破楼市泡沫随着房地产的发展,房价一路飙升,过去二十年,全国房价均价涨幅高达5倍,事实就是,在一二线城市和一些经济发展比较好的城市,房价上涨已经超过1020倍,甚至更多。购房难已经成为普罗大众美国真是胆子大,太空也敢玩绑架近日,美国星链卫星太空两次碰瓷中国,天宫空间站采取措施,紧急避让。随着科技的发展,当太空成为一种资源,竞争也变得越来越激烈。从美苏太空竞赛,到如今大国竞相公布太空战略,浩瀚宇宙会否官宣!前国乒主力出任美国主教练,曾和王皓同场指挥,同框刘国梁进入2022年,美国乒乓球队完成重要调整,美国乒协官方宣布,高军出任主教练。之前的世乒赛,高军就扮演重要角色,林高远张安这对跨国组合比赛时,高军和王皓同场指挥。另外,中美组队参加混拿眯眯眼搞歧视,用摆烂的LOLM圈钱,强大的我们不吃美国这套最近,三只松鼠眯眯眼事件被骂上了热搜,美国游戏LOLM持续摆烂也遭到了玩家的弃游。不管这些事件到底谁是谁非,但从中至少能够看出来一些西方势力对我们的态度。一直以来,以美国为首的西方杰克就是我心里最好的AD他和Knight,就像是樱木花道和流川枫本以为英雄联盟S11赛季结束以后,LPL赛区会安静的等待S12春季赛的开赛。但是让囧王者万万没有想到的是,在2022年1月1日,LPL官方的一篇关于Knight的转会中二文章LPL做当地人,过一会藏历年在汉族每年春节是一年中最隆重最盛大的民族节日。举家团圆,一起迎接的新的一年,大家会贴上对联,点起鞭炮,为来年许下美好心愿。每个地区每个民族,过新年的方式也不同,但是都大同小异。在高1938年的四川成都,街头耸立炸弹模型,刘备之墓古意盎然成都位于岷江中游,成都平原腹地,有着天府之国的美誉,是一座有着4500多年的城市文明史的历史文化名城,拥有非常厚重的文化底蕴,也因此荣列我国十大古都之一。本组照片为美国记者哈里森福川藏线遍地报废汽车,为何没人敢捡?当地人天上不会掉馅饼川藏线始于成都,终于拉萨,沿途有很多美景,还有很多山川河流,不少喜欢越野的年轻人都想要开车去征服川藏线。川藏线有南北两条线,南线的路况相对较好,沿途可以看到很多自然风光。北线的路况保级大幕完美落下,青岛大连迎战浙江成都,生死大战一触即发中超保级组最后一轮,三场比赛同时进行,90分钟内剧情跌宕起伏,精彩激烈刺激,连续反转再反转,最终进入残酷超甲生死战的球队出炉,提前一轮垫底的青岛队将与中甲第3名浙江队进行附加赛,而许家印市价过亿豪宅打折出售,链家中介证实房子按七到八折出售,刚好够三代同堂居住,看房需验资5000万近日,在社交平台上流传着一则许家印广州珠江新城的豪宅出售信息。1月3日,九派新闻记者向金碧华府小区附近的链家中介小梁求证此事,她表示该房产是在出售中,确实属于许家印所有。网传截图显官宣!太阳队正式续约7200万先生,艾顿可以安心地休息了在库里和格林都未出战的前提下,勇士队今天以96101输给了鹈鹕队,值得一提的是,勇士队已经连输了两场比赛,而在这之前的两场比赛里,库里41投仅8中,赛后,球队主教练科尔透露了库里左足协杯决赛,胜利的天平已经向上港的方向倾斜从目前的舆论情况来看,大家都觉得足协杯决赛泰山队十拿九稳,这正是一个非常危险的信号,俗话说,大热必死,骄兵必败,这让我想起了当年和江苏舜天的比赛,两个球的优势,愣是落后了90分钟,新年央媒为联想齐发声,司马南之流啪啪被打脸新年央媒为联想齐发声!高度评价联想38年来为国家做出的巨大贡献,司马南之流凭一张嘴,颠倒黑白,抹黑联想,做流量生意,被啪啪打脸!多少不明真相的民众,被这些跳梁小丑所忽悠!央媒对联想生活中的电磁辐射一无处不在的电磁辐射1831年,英国人法拉第发现了电磁感应现象。在这一发现的基础上,苏格兰人麦克斯韦预测了电磁波的存在。随后的研究发现,在交流电的周围存在着电磁场,电磁场的能量以电只要1699元!华为旗舰店上架新款手机支持5G1月7日消息,华为京东自营旗舰店上架了一款全新的5G手机,型号为中国移动华为智选NZONES7,支持双模5G,内存组合为6GB128GB,售价1699元。这款手机的外观设计类似no三国志战略版S级战法解读,智计为什么不好用花席一直看不起智计这个战法,很多读者不理解为什么,其实就是期待值和相互对比的问题。没有对比,就没有伤害。对比一下其他战法,就知道智计为什么差劲了。智计降低敌军2人武力智力属性,可以CBA三消息王哲林太憋屈,山东队10人轮换太罕见,葛昭宝MVPCBA联赛继续进行,在上海队与山东队的比赛中上海队中锋王哲林在上半场迎来了大爆发,他一个人就砍下了18分,可以说凭借一己之力帮助球队紧咬比分。不过来到下半场王哲林突然变得非常没有存前沿向地质深层注入二氧化碳,会产生燃料摘要地底下有一种神秘的古菌,力量无穷,可以在适当的情境下,把很多物质分解。这种新型产甲烷古菌有可能作为一种全新的合成生物学底盘细胞,具有广泛的应用前景。地底下到底在发生什么,对于人SiPM与SPAD基本原理转载知乎pipi大神文章,写的真好。基于PN结的探测器种类PINAPDSPADSiPM。下图为PINAPD与SPAD工作电压区域,其中,SAPD工作在盖革(Geiger)模式。SP真我GT2和真我GT大师探索版,到底哪款更值得买?详细解读文小伊评科技realmeGT2系列正式发布,分为两个版本realmeGT2Pro以及realmeGT2,这也是近些年安卓手机市场非常少见的直屏旗舰机型。不过,GT2和GT2Pro虽亲测好用34英寸4K带鱼屏性价比无敌仅999元支持HDR和高刷999元的34英寸带鱼屏,听起来怎么感觉这么不靠谱不过笔者亲测,这车真的可以上。这款熊猫PF34UC2拥有34英寸4K分辨率,999元的价格堪称目前最便宜的34英寸带鱼屏。买不了吃
安卓机皇终于抛弃了曲面屏消费电子产品名中的单词并非是凭空捏造,大概有着几层的含义。iPhone14产品序列图片来自cnet以经典的苹果式命名来看,早期的AirPro就是简单的功能属性区分,到了现在的iPh国富创新战略布局合规虚拟资产赛道,大资管道路如何破局继去年南方东英比特币期货ETF(3066。HK)南方东英以太币期货ETF(3068。HK)产品挂牌上市以来,香港正式容许买卖受到全面监管的虚拟资产产品,成为亚太地区推动虚拟资产全面三大运营商集体拉升业内防范股价回调风险上市公司观察在数字经济的提振下,2月28日,计算机通信等行业板块早盘领涨,其中三大通信运营商集体拉升,盘中,中国电信涨幅超8,中国联通涨超6,中国移动涨超4。此外,三大运营商5G用这些被包装耽搁的6款酒,价格只要两位数,你都喝过哪几款?很多时候,我们去买酒,相信很多人都会把包装看作第一首选,毕竟优雅的包装,确实能够为颜值增分不少,也更能提高入手率。因此,很多厂家都会把包装当作酒的第一要务。虽然包装提上去了,价格自定了!张颂文下部戏将化身天才毒枭,女主为任正非小女儿随着狂飙的热播,张颂文所饰演的高启强成为了不少人茶余饭后讨论的话题,可以说张颂文将一位黑社会老大扮演地淋漓尽致,无论从早期的机警无畏再到后期的油滑老辣,都给观众一种眼前一亮的效果。赌王何鸿燊86万续命针每天一针,800万金丝楠木棺揭开世纪葬礼2022年5月26日,一代澳门赌王何鸿燊在医院因救治无效死亡,享年98岁。据何家人的描述,何鸿燊一直到最后都有很强的求生意志,试图再次睁开眼睛看看这个世界,可因为多个器官已经衰竭,吴秀波儿子殴打女友,比渣,还是老子赢了昨天有张图刷屏全网,已经退圈4年的吴秀波,靠自己的大儿子重回热搜top。看到家暴出轨威胁这些关键词,就知道肯定不是什么好事。有位自称吴瀚(吴秀波儿子大名)前女友的网友,发帖爆料自己三国54诸葛亮献计给东吴,不小心透露出曹操怪癖,惹得周瑜大怒这个男人名叫周瑜,是东吴的大都督,也是一个毁书狂魔。周瑜我读完卷烧一卷,全部读完则全部烧尽。视频加载中这让诸葛亮倍加亲切,直言他也有这个爱好,不过他会留下一本书。周瑜何书。诸葛亮皇19岁出道风光无限,因双琪夺面事件跌入谷底,如今她怎么样了时间会冲淡一切我们曾经以为不放不下的种种,时光会拾回一切我们以为已经忘记的种种。第二季时光音乐会,在观众的感动美好与依依不舍中,落下了帷幕。虽然第一季口碑爆棚,但第二季也毫不逊色,拯救者李彦宏,百度35亿美金收购YY能否扭转乾坤一扫颓势头条创作挑战赛古人说三十年河东,三十年河西,莫欺少年穷,高速发展的现代,这句话并不实用。高效是我们现代文明发展的重要核心,无论是学习爱情事业政治购物娱乐等等都在追逐高效。高效是缩短入手华为mate30有感最近中美贸易争端加剧,导致全球最大的两个经济体进出口贸易受挫,加上全球疫情肆虐进而引发一系列的多股诺骨牌效应,经济下滑股市断崖式下跌,杠杆失衡坏账率居高不下失业率极速飙升,很不幸我