热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

数据库多级联动表结构设计

以省市区县四级联动为例:方案一:建立多个数据库表,低级表结构中只包含上一级表中id。省表市表区表县表provincecitydist

以省市区县四级联动为例:

方案一:

建立多个数据库表,低级表结构中只包含上一级表中id。

省表市表区表县表
provincecitydistrictcounty
idprovince_idcity_iddistrict_id

优点:

  1. 此设计完全解开了各层之间的耦合性,用类似于链表的形式将多层数据关系起来。
  2. 可以节约大量的数据库空间。
  3. 维护方便。如果发生了新增和修改操作时,只要修改与之相关的那个表的主键即可。

缺点:

  1. 跨级查询效率低下。如查询河北省下有哪些县,需要查询三次涉及三张表才能查到结果。

方案二:

也就是方案一的改进版,低级表持有所有高级表的id,从而获得查询性能上的提升。

省表市表区表县表
provincecitydistrictcounty
idprovince_idcity_iddistrict_id
  province_idcity_id
   province_id

优点:

  1. 跨级查询性能较高。

缺点:

  1. 表结构混乱,冗余字段增加,占用较多数据库空间。
  2. 新增和删除操作复杂,效率不高,维护性差,需要考虑数据完整性和一致性。

方案三:

方案二的改进版,采用自关联(递归)的方式设计。

idpidname
10河北省
21唐山市
31保定市
42迁安县
6....

优点:

  1. 节省数据库空间,表结构清晰,容易维护。
  2. 无限级别的层次关系,扩充性强。

缺点:

  1. 不能明确看出层次关系,无法实现排序。
  2. 跨级查询效率不高。

方案四:

待补充。

 

 

 

 

 

 

 

 


推荐阅读
  • NOIP2000的单词接龙问题与常见的成语接龙游戏有异曲同工之妙。题目要求在给定的一组单词中,从指定的起始字母开始,构建最长的“单词链”。每个单词在链中最多可出现两次。本文将详细解析该题目的解法,并分享学习过程中的心得体会。 ... [详细]
  • 本文详细介绍了在Linux系统上编译安装MySQL 5.5源码的步骤。首先,通过Yum安装必要的依赖软件包,如GCC、GCC-C++等,确保编译环境的完备。接着,下载并解压MySQL 5.5的源码包,配置编译选项,进行编译和安装。最后,完成安装后,进行基本的配置和启动测试,确保MySQL服务正常运行。 ... [详细]
  • 利用ZFS和Gluster实现分布式存储系统的高效迁移与应用
    本文探讨了在Ubuntu 18.04系统中利用ZFS和Gluster文件系统实现分布式存储系统的高效迁移与应用。通过详细的技术分析和实践案例,展示了这两种文件系统在数据迁移、高可用性和性能优化方面的优势,为分布式存储系统的部署和管理提供了宝贵的参考。 ... [详细]
  • Android动态界面布局设计与实现
    在最近的项目中,我们集成了第三方Geesee的直播视频功能,遇到了一个动态界面布局的挑战。具体需求是在用户点击按钮时,能够实现视频视图与文档视图的位置互换。此外,还需要确保文档视图在不同屏幕尺寸下保持良好的显示效果。为了实现这一目标,我们采用了灵活的布局管理策略,并结合了自定义视图组件,以提升用户体验和界面的适应性。通过这种方式,不仅解决了动态布局的问题,还增强了应用的交互性和视觉效果。 ... [详细]
  • 在2019年寒假强化训练中,我们深入探讨了二分算法的理论与实践应用。问题A聚焦于使用递归方法实现二分查找。具体而言,给定一个已按升序排列且无重复元素的数组,用户需从键盘输入一个数值X,通过二分查找法判断该数值是否存在于数组中。输入的第一行为一个正整数,表示数组的长度。这一训练不仅强化了对递归算法的理解,还提升了实际编程能力。 ... [详细]
  • Vue CLI 初始化 Webpack 项目时,main.js 文件是如何被调用的? ... [详细]
  • 如何使用ES6语法编写Webpack配置文件? ... [详细]
  • 本文探讨了在使用 Outlook 时遇到的一个常见问题:无法加载 SAVCORP90 插件,导致软件功能受限。该问题通常表现为在启动 Outlook 时会收到错误提示,影响用户的正常使用体验。文章详细分析了可能的原因,并提供了多种解决方法,包括检查插件兼容性、重新安装插件以及更新 Outlook 版本等。通过这些步骤,用户可以有效解决这一问题,恢复 Outlook 的正常运行。 ... [详细]
  • C语言中类型自动转换的深入解析与应用
    C语言中类型自动转换的深入解析与应用 ... [详细]
  • 洛谷 P4035 [JSOI2008] 球形空间生成器(高斯消元法 / 模拟退火算法)
    本文介绍了洛谷 P4035 [JSOI2008] 球形空间生成器问题的解决方案,主要使用了高斯消元法和模拟退火算法。通过这两种方法,可以高效地求解多维空间中的球心位置。文章提供了详细的算法模板和实现代码,适用于 ACM 竞赛和其他相关应用场景。数据范围限制在 10 以内,确保了算法的高效性和准确性。 ... [详细]
  • 解题心得:UVA1339(逻辑分析与字符串处理+排序算法)
    解题心得:UVA1339(逻辑分析与字符串处理+排序算法) ... [详细]
  • Bagels:融合挖矿、借贷、跨链与预言机功能的多合一创新项目即将启动
    Bagels:融合挖矿、借贷、跨链与预言机功能的多合一创新项目即将启动 ... [详细]
  • 题目链接:https://www.luogu.com.cn/problem/P6453在解决 COCI 2008-2009 第四轮 PERIODNI 问题时,我们需要逐行分析。由于一行中的字符若被断开则不再视为同一行,因此每行的最大矩形区域需要单独计算。通过这种方法,可以确保每层都能找到其最大连续子矩形,从而有效解决问题。 ... [详细]
  • 如何在C#中配置组合框的背景颜色? ... [详细]
  • 脑机接口技术在物联网行业中的应用与前景分析
    近期,国际研究人员开发了一种轻便的脑电图(EEG)采集与信号处理系统,并在物联网领域进行了初步应用研究。该系统配备了8个可扩展的采集电极和1个参考电极,具备高灵敏度的放大功能,能够有效捕捉和处理脑电信号。通过与物联网技术的结合,该系统有望在智能家居、健康监测和人机交互等领域发挥重要作用,展现出广阔的应用前景。 ... [详细]
author-avatar
zj5415
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有