首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >关系数据建模问题-2个需要相同“子数据”的不同表

关系数据建模问题-2个需要相同“子数据”的不同表
EN

Stack Overflow用户
提问于 2011-02-21 00:59:40
回答 2查看 470关注 0票数 0

我在这里读到了许多关于一对一关系、建模对象类型关系等的答案。我正在尝试做一些我只是不确定什么是正确的方法的事情。

我有两个不同的表,它们都需要引用/包含多边形的列表(多边形实际上表示为一个外环和任意数量的内环,以表示曲面上的孔)。这两个表中的每一个都是一组完全不同的属性。

以下是模型的视图,其中只有一个表引用了多边形:

现在我想要第二个表,每一行也代表一个多边形的集合。从面向对象的角度来看,我知道如何做到这一点,但是关系视图让我对什么是正确的方式感到困惑。

一种方法是向polygonwitholes表中添加另一个外键,其中一个是null,而另一个是填充的。如下所示:

这看起来不太对劲。所以我考虑了中间表,但是关系看起来更像是面向对象的,而不是关系关系。这是一种不合理的方式吗,在这些外键上进行非此即彼的操作?或者,我可以有一个整型字段,并且不向数据库添加任何约束,即它是另一个表的外键,并将其用于当时使用的任何表?从查询的角度来看,我必须检索table1或table2中行的每个多边形中的所有点。

因此,我提出的一个选择是这样的,但是当我思考如何进行查询时,有些事情看起来不太对劲:

我知道对于一个真正的数据建模师来说,这将是一个显而易见的问题!这个网站对我来说很棒,这是我的第一个问题,我希望它有意义!那么,对于应该如何建模,有什么建议吗?

(好的,我试着发布,但是图片没有出现。我会试着让别人帮我把它们贴出来)

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-03-01 17:26:53

因此,我在咨询了人们之后做出了决定。

我使用了第三范式,并制作了中间表,将曲面连接到多边形,将网格连接到多边形。最终的解决方案如下表所示:

表面(ID主键)

SensorGrid (ID主键)

多边形(ID主键)

Point(ID主键,PolygonID外键)

Surface_Polygon(surfaceID,polygonID:复合主键)

SensorGrid_Polygon(sensorGridID,polygonID:复合主键)

因此,两个中间表将多边形绑定到它们是在网格中还是在曲面中。我将检查以确保额外的联接不会对性能产生太大影响。这是最干净的解决方案,如果将来确实需要优化性能,我会考虑为SurfacePolygon、SurfacePoint、SensorPolygon和SensorPoint创建单独的表,并去掉中间表。

谢谢你的帮助。

票数 1
EN

Stack Overflow用户

发布于 2011-02-21 04:07:01

好了,我要试一试了。如果这真的是1比1,并且给定的PolygonwithHoles不能既是曲面又是网格,那么我会使用你的最后一个例子,但我会删除容器表,因为它是完全多余的。如果出于某种原因,您希望将所有的多边形孔作为曲面和网格,则可以始终使用sql联合来创建该表。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5061334

复制
相关文章
MongoDB的数据关系建模
MongoDB是一种面向文档的数据库,因此在进行数据建模时,其与传统的关系型数据库有所不同。MongoDB支持多种数据关系建模方法,包括嵌入式数据模型和引用式数据模型。
堕落飞鸟
2023/05/09
6000
PowerBI建模表与表关系
各位表哥表姐、表弟表妹们,我们生活一个表的世界,大家可能每天都在跟表格打交道,我们这节就来重新认识表这个家族。
公众号PowerBI大师
2019/08/07
4K0
PowerBI建模表与表关系
Power Pivot数据建模基础:数据表间的4种基本关系类型
大海:在数据处理的时候,我们经常需要对2张相关的表格建立表间关系,比如订单表和订单明细表,订单明细表里的产品和产品表……那么2张表之间总是要能够找到明确的逻辑关系,才能建立表间关系,比如订单表里的订单编号和订单明细表里的订单编号是对应的。
大海Power
2021/08/30
3.7K0
consul注册相同服务,相同程序,相同IP,不同端口来负载的问题
由于今天发现运维代码未正常发布。想要自己手动发布。发现原有服务名mos-x3-gls-service只有1个node启动,为了保障发布时原有服务不中断我需要再注册1个node,于是我简单修改了原有springboot端口9112为9113,启动后发现9113的节点正常注册,但是原来9112端口的节点服务没有了,搞了个寂寞。原因是如果在Spring Cloud Consul中使用相同的节点id进行注册,那么Consul将会将它们视为同一个节点,并将它们注册为同一个节点。老了,大意了。于是我把注册consul的节点id设置为服务名称+进程id即可解决。
高久峰
2023/06/17
5400
论道数据仓库维度建模和关系建模
为什么要数据仓库建模呢? 如果把数据看作图书馆里的书,我们希望看到它们在书架上分门别类地放置;如果把数据看作城市的建筑,我们希望城市规划布局合理;如果把数据看作电脑文件和文件夹,我们希望按照自己的习惯有很好的文件夹组织方式,而不是糟糕混乱的桌面,经常为找一个文件而不知所措。 数据模型就是数据组织和存储方法,它强调从业务、数据存取和使用角度合理存储数据。Linux的创始人Torvalds有一段关于“什么才是优秀程序员”的话:“烂程序员关心的是代码,好程序员关心的是数据结构和它们之间的关系”,最能够说明数据模型
企鹅号小编
2018/02/24
2.1K0
论道数据仓库维度建模和关系建模
Excel中的数据建模:表间关系一线牵,何须大量公式拼数据
大海:在传统数据透视表里的确是要那么干的,但到了Power Pivot里,当然就不用辣妈麻烦啦。直接拉根线连起来就把表的关系建好了,在数据分析的时候就可以直接用他们的关系了,数据根本不需要接进来。
大海Power
2021/08/30
1.9K0
建模前需要面对的问题
统计更加在乎的是模型应用的完善,即数据必须要符合模型的假定。任何一个模型都有假定。数据挖掘中,如决策树和神经网络做的时候很少会提到假定,实际上他们的假定和回归差不多。很多时候,我们用R或者SAS建立一个决策树会发现效果不好,效果不好的原因就是你的数据不符合假定。决策树这种模型其实是没有底蕴的,即没有体系帮忙进行检验,所以这种模型在建模之前一定要对数据进行预处理,让数据去符合假定。如果想建好一个模型,在建模之前需要面对下面这些点:
许卉
2019/07/15
5250
mysql过滤表中重复数据,查询表中相同数据的最新一条数据
先对表按照时间desc排序,在查询该层使用group by 语句,它会按照分组将你排过序的数据的第一条取出来
安德玛
2022/03/09
5.6K0
第2篇:数据库关系建模
第二篇:数据库关系建模 前言 ER建模环节完成后,需求就被描述成了ER图。之后,便可根据这个ER图设计相应的关系表了。 但从ER图到具体关系表的建立还需要经过两个步骤:1. 逻辑模型设计 2. 物理模型设计。其中前者将ER图映射为逻辑意义上的关系表,后者则映射为物理意义上的关系表。逻辑意义上的关系表可以理解为单纯意义上的关系表,它不涉及到表中字段数据类型,索引信息,触发器等等细节信息。 本文将详细介绍前者。确切来说,也就是ER模型到逻辑关系表的映射是如何完成的。 基本概念 在开始进行ER模型到逻辑关系表的
Spark学习技巧
2018/03/20
1.7K0
第2篇:数据库关系建模
白话Elasticsearch60-数据建模实战_Join datatype 父子关系数据建模
白话Elasticsearch58-数据建模实战_基于nested object实现博客与评论嵌套关系
小小工匠
2021/08/17
2970
MySQL---数据库从入门走向大神系列(四)-子查询、表与表之间的关系
本篇博客讲解(子查询)非相关子查询/相关子查询,一对一,一对多,多对一,多对的的关系!
谙忆
2021/01/21
1.6K0
MySQL---数据库从入门走向大神系列(四)-子查询、表与表之间的关系
为什么我的两个表建立数据关系有问题?
小勤:真的嘢!里面有两个小米,一个是宏仁生产的,一个是德昌生产的。但是,产品名称重复不行吗?
大海Power
2021/08/30
1.2K0
iOS中相同IP,不同端口,session失效的问题
公司在https服务器(端口443)进行正常登陆业务等处理 https://ip1:443/ 然后在端口444服务器进行资料文件上传等处理 https://ip1:444/ 因为服务器在https://ip1:443/登陆成功之后对cookie中的session进行校验保存,而一旦出现访问443->444->443,就是进行文件上传操作后,再调用443端口后,服务器对session校验失败,出现会话超时问题
freesan44
2018/09/05
2K0
专家指南:大数据数据建模的常见问题
我最近在How-tos专家系列介绍了如何在大数据系统上数据建模。在演讲过程中,许多与会者提出了一些非常有趣的问题。众所周知,大数据系统围绕结构需求的形式化程度较低,但是对于数据仓库继续为传统用例提供服务而言,建模仍然是非常重要的功能。我想分享一下我在本届会议期间以及访问组织时收到的一些较常见的问题,并对此做出回应。
大数据杂货铺
2020/01/11
9330
专家指南:大数据数据建模的常见问题
专家指南:大数据数据建模的常见问题
最近在How-tos专家系列介绍了如何在大数据系统上数据建模 。在演讲过程中,许多与会者提出了一些非常有趣的问题。众所周知,大数据系统围绕结构需求的形式化程度较低,但是对于数据仓库继续为传统用例提供服务而言,建模仍然是非常重要的功能。我想分享一下我在本届会议期间以及访问组织时收到的一些较常见的问题,并对此做出回应。
大数据杂货铺
2020/02/11
1.2K0
sqlserver表结构不同实现数据同步
这周在搞数据同步的功能 说是什么数据c库到a库 a库到b库 现在要改成c库直接到b库 由于各种各样的原因吧 这两天才搞明白实现方案是:b库创建一个到c库的链接 然后写个存储过程 让sqlserver的作业定时执行这个存储过程 实现定时同步
周杰伦本人
2022/10/25
7590
sqlserver表结构不同实现数据同步
数据库表关系之-多对多关系
本章内容针对tortoise-orm进行多对多关系的数据分析 图片 ---- 图片 简单的多对多关系介绍 如上ER图中看到了我们的三张表:分别是access、role、user(user这张表我没放上去). 多对多关系: role角色表的一条记录能够对应另外一张user用户表中的多条记录,同时user表中的一条记录也能对应role表中的多条记录,被称之为我们的多对多关系。 在tortoise-orm的ManyToManyRelation关系中,默认是使用pk字段作为关联字段的 class M
Yuou
2022/09/26
3.2K0
数据库表关系之-多对多关系
SQL如何对不同表的数据进行更新
如果我们有表A和表B, 我想把我的表A的Col1内的数据更新到表B的Col1里面,那么我们怎么做呢?
繁华是客
2023/03/03
3.7K0
select * 与 select id 字段 条件相同 数据结果不同(一)
起初以为是timezone时区设置问题,结果,配置改为CST后,仍然问题没解决,后看了下,这个date是dateTime类型的,与时区无关,所以问题不在此。
MickyInvQ
2020/09/27
1.2K0
select *  与 select id  字段 条件相同 数据结果不同(一)
点击加载更多

相似问题

具有相同列的相同表的数据建模

10

Tarantool数据建模关系

10

关系数据的建模

11

数据建模中的关系

11

核心数据建模问题(如何基于关系关系更新属性?)

11
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档