日期:2014-05-17  浏览次数:20705 次

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

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

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

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

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

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

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

------解决方案--------------------
其实就是一对多的关系嘛,一对多一般就是两个主表加一个关系表来实现。一个主表存“起点”,一个表存“终点”,关系表存某个起点对应哪些终点。这三个表都会有重复值,但是注意控制好方向就可以了
------解决方案--------------------
在arcgis中,你这个图只建一张表t(shapeid,gisinfo),包含3条数据(对应包含的2个多边形和整个大多边形)
gisinfo字段存储每个多边形的坐标,如x1,y1,z1-x2,y2,z2...
其它表/字段要看你的业务需求。