在街道路段和汽车扫描之间建立一对多关系



我有两个表,需要在它们之间创建一对多关系。tlbsect将城市中的一系列街道路段表示为直线。每条街道都有自己的id。tlbscans代表一个街道路段的街上扫描,上面有车。我需要将tlbscan与作为街道路段的tlbstation联系起来,并且可以有多个扫描。使用下面的示例数据,有什么好方法可以做到这一点?

t观察ID(PK(|geom|节|

1|xy|5713|

2|xy |5717|

tlbscan截面|a|b|

5713 | 30 | 19 |

5717|2|1|

压倒一切的问题:列sectiontlbsections中是唯一的吗。如果是,则在其上创建唯一约束。然后在表"tblscans"引用中的列section上创建FK。假设表已经存在:

alter table tlbsections 
add constraint section_uk
unique section; 
alter table tblscans
add constraint scans_section_fk 
foreign key (section) 
references tlbsections(section);

如果tlbsections中唯一的列section不是唯一的,则无法建立当前定义的关系。在没有更多细节的情况下,我建议您添加一列以包含tlbsections.id,在新列上创建一个FK,然后删除列sectiontblscan。

alter table tblscans
add tlbsections_id <data type>; 

alter table tblscans
add constraint sections_fk 
foreign key (tlbsections_id) 
references tlbsections(id);
alter table tblscans
drop column  section;

可能还有其他选择,但提供的内容并不明显。

最新更新