2个表之间有2个一对多的关系可以接受吗?

2个表之间有2个一对多的关系可以接受吗?

问题描述:

我有一个数据库实用结构(极点,塔)与他们之间的电线。每一段导线连接到两个结构。我需要定义结构和跨度之间的关系。2个表之间有2个一对多的关系可以接受吗?

我想出了跨度表中的结构A与“from”外键字段之间的关系,以及结构B和跨度表中的“To”外键字段之间的关系。这是可接受的数据库设计?

这里有一个图: 2 one to many relationships between the structure table and the span table

+0

是的,它是可以接受的 – 2015-03-30 21:40:24

+0

是的,一般来说没问题。但是您可能需要考虑在相同结构之间存在多条导线时会发生什么情况。哪个是“从”结尾? – 2015-03-30 21:43:47

+0

这两个FK很好,但是eek!不建议在列的前面加上类型。地理坐标最好以['Point'](https://msdn.microsoft.com/en-us/library/bb933811.aspx)s或双精度浮点数存储,但绝对不是字符串。我想我会用可空列的数量来打击我的大脑......几乎所有的查询都会因“我必须考虑空值吗?”这个问题而变得复杂起来。 – Mitch 2015-03-30 21:51:24

你的模型表明,跨度是关系到正好2的结构。所以我认为你很好,那里。我唯一的评论是,用“fkFromStructureID”和“fkToStructureID”这两个名称暗示可能不存在的方向。我承认,这是挑剔的。但是如果你在现实世界模型中没有“方向”的概念,你可能想考虑不同的名字。如果方向确实存在,那么这工作正常。

注意:如果您计划能够使用这些FK字段“跨越”跨度和结构链,那么您需要确定在进入数据库的过程中管理方向。其中一个跨度来自和反向会破坏链条的行走能力。

+0

感谢大家提出的很好的建议 – 2015-03-30 21:56:15

是的,在设计数据库时这是相当普遍的要求,您的方法可能是满足此要求的最佳方法。