我有两个表,需要在它们之间创建一对多关系。tlbsect将城市中的一系列街道路段表示为直线。每条街道都有自己的id。tlbscans代表一个街道路段的街上扫描,上面有车。我需要将tlbscan与作为街道路段的tlbstation联系起来,并且可以有多个扫描。使用下面的示例数据,有什么好方法可以做到这一点?
t观察ID(PK(|geom|节|
1|xy|5713|
2|xy |5717|
tlbscan截面|a|b|
5713 | 30 | 19 |
5717|2|1|
压倒一切的问题:列section
在tlbsections
中是唯一的吗。如果是,则在其上创建唯一约束。然后在表"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,然后删除列section
tblscan。
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;
可能还有其他选择,但提供的内容并不明显。