我的数据库中有两个表。让我们称他们为人和建筑物
create table building (
id serial primary key,
address varchar(255)
);
create table person (
id serial primary key,
name varchar(255),
building_id integer,
foreign key (building_id) references building (id)
);
我需要的是在人员表中具有另一个字段,该字段将是“建筑物中的人员”唯一的。因此,如果建筑物中有两个人,而我又增加了三个人,他们将被分配3作为其“建筑物中的人”编号。我不在乎这些“人在建筑物中”的编号是否是连续的,只要它们对于人+建筑物是唯一的并且在删除/插入操作中保持不变(即,如果一个人被删除,同一建筑物中的其他人不会自动重新编号)。我可能可以使用触发器来实现这一点,但是我想知道是否有更简单的方法。