热门标签 | HotTags
当前位置:  开发笔记 > 数据库 > 正文

求问怎么设计数据库表表示拓扑关系

比如说这个图给弧段和多边形编号后能够通过编号查询组成多边形的各个点。我想的是建个表:点(点号,x,y,z)线(线号,头结点,尾结点),头结点和尾结点作为外键但是多边形组成点数不确定就不

比如说这个图给弧段和多边形编号后能够通过编号查询组成多边形的各个点。
我想的是建个表:点(点号,x,y,z)
线(线号,头结点,尾结点),头结点和尾结点作为外键
但是多边形组成点数不确定就不知道怎么建表了。

而且查询的时候只能查询组成点号,不能依次显示点对应的x,y,z
比如查询多边形1,显示1,2,3,4

感觉有点难设计关系模型,求解。

7 个解决方案

#1


"多边形组成点数不确定就不知道怎么建表"这句没明白什么意思。

如果为你这个图设计数据库的话,我会再加2个表格, 图形以及 图形和线的关系表。

图形中是2行数据,分别是图形1,图形2
图形和线的关系表格(关系ID,图形号,线号),如果只定义图形1的话,这里就是4行数据。

#2


其实就是一对多的关系嘛,一对多一般就是两个主表加一个关系表来实现。一个主表存“起点”,一个表存“终点”,关系表存某个起点对应哪些终点。这三个表都会有重复值,但是注意控制好方向就可以了

#3


楼主是在做gis?你说的是空间数据库中的完整多边形描述。

#4


这个图包含两个多边形,应该建一张表保存每个多边形各个节点的坐标。

#5


在arcgis中,你这个图只建一张表t(shapeid,gisinfo),包含3条数据(对应包含的2个多边形和整个大多边形)
gisinfo字段存储每个多边形的坐标,如x1,y1,z1-x2,y2,z2...
其它表/字段要看你的业务需求。

#6


引用 2 楼 DBA_Huangzj 的回复:
其实就是一对多的关系嘛,一对多一般就是两个主表加一个关系表来实现。一个主表存“起点”,一个表存“终点”,关系表存某个起点对应哪些终点。这三个表都会有重复值,但是注意控制好方向就可以了

但是关键是组成多边形的点有顺序,比如多边形的点是1,2,3,4,但是可能是2,4,3,1连接而成的多边形

#7


加个列到关系表中

推荐阅读
  • 本文探讨了哪些数据库支持队列式的写入操作(即一个键对应一个队列,数据可以连续入队),并且具备良好的持久化特性。这类需求通常出现在需要高效处理和存储大量有序数据的场景中。 ... [详细]
  • 本问题探讨了在特定条件下排列儿童队伍的方法数量。题目要求计算满足条件的队伍排列总数,并使用递推算法和大数处理技术来解决这一问题。 ... [详细]
  • Netflix利用Druid实现高效实时数据分析
    本文探讨了全球领先的在线娱乐公司Netflix如何通过采用Apache Druid,实现了高效的数据采集、处理和实时分析,从而显著提升了用户体验和业务决策的准确性。文章详细介绍了Netflix在系统架构、数据摄取、管理和查询方面的实践,并展示了Druid在大规模数据处理中的卓越性能。 ... [详细]
  • 深入理解Lucene搜索机制
    本文旨在帮助读者全面掌握Lucene搜索的编写步骤、核心API及其应用。通过详细解析Lucene的基本查询和查询解析器的使用方法,结合架构图和代码示例,带领读者深入了解Lucene搜索的工作流程。 ... [详细]
  • 本文介绍了如何利用 Spring Boot 和 Groovy 构建一个灵活且可扩展的动态计算引擎,以满足钱包应用中类似余额宝功能的推广需求。我们将探讨不同的设计方案,并最终选择最适合的技术栈来实现这一目标。 ... [详细]
  • 探讨如何优化MongoDB数据库在长时间未访问后首次查询时的性能问题,提供多种解决方案和最佳实践。 ... [详细]
  • 在项目部署后,Node.js 进程可能会遇到不可预见的错误并崩溃。为了及时通知开发人员进行问题排查,我们可以利用 nodemailer 插件来发送邮件提醒。本文将详细介绍如何配置和使用 nodemailer 实现这一功能。 ... [详细]
  • 本文详细介绍了如何在 MySQL 中授予和撤销用户权限。包括创建用户、赋予不同级别的权限(如表级、数据库级、服务器级)、使权限生效、查看用户权限以及撤销权限的方法。此外,还提供了常见错误及其解决方法。 ... [详细]
  • 本文详细探讨了JavaScript中的作用域链和闭包机制,解释了它们的工作原理及其在实际编程中的应用。通过具体的代码示例,帮助读者更好地理解和掌握这些概念。 ... [详细]
  • MySQL InnoDB Double Write机制详解
    本文深入探讨了MySQL InnoDB存储引擎的Double Write技术,该技术通过在内存和磁盘上创建数据页的副本,确保了部分写失效(Partial Page Write)情况下的数据完整性和可靠性。同时,文章介绍了InnoDB以页为单位进行读取和更新的机制,并详细解析了Double Write的工作原理。 ... [详细]
  • 深入理解 .NET 中的中间件
    中间件是插入到应用程序请求处理管道中的组件,用于处理传入的HTTP请求和响应。它在ASP.NET Core中扮演着至关重要的角色,能够灵活地扩展和自定义应用程序的行为。 ... [详细]
  • Python 内存管理机制详解
    本文深入探讨了Python的内存管理机制,涵盖了垃圾回收、引用计数和内存池机制。通过具体示例和专业解释,帮助读者理解Python如何高效地管理和释放内存资源。 ... [详细]
  • 本文介绍了数据库体系的基础知识,涵盖关系型数据库(如MySQL)和非关系型数据库(如MongoDB)的基本操作及高级功能。通过三个阶段的学习路径——基础、优化和部署,帮助读者全面掌握数据库的使用和管理。 ... [详细]
  • C#设计模式学习笔记:观察者模式解析
    本文将探讨观察者模式的基本概念、应用场景及其在C#中的实现方法。通过借鉴《Head First Design Patterns》和维基百科等资源,详细介绍该模式的工作原理,并提供具体代码示例。 ... [详细]
  • 目录一、salt-job管理#job存放数据目录#缓存时间设置#Others二、returns模块配置job数据入库#配置returns返回值信息#mysql安全设置#创建模块相关 ... [详细]
author-avatar
井底蛙的天空13
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有