如何为数据库中的对等行建模

How to model Peer Row in a Database

我正在数据库中建模对等 2 对等关系(H2,特别是对于这个问题,任何 RDBMS 都应该这样做。)

说,我有装备Table

CREATE TABLE  EQUIPMENTS (
    ID LONG PRIMARY KEY,
    VENDOR VARCHAR(50) NOT NULL,
    MODEL VARCHAR(50) NOT NULL,
    PORT VARCHAR(50),
    peer_equipment_id LONG REFERENCES EQUIPMENTS(ID)
);

现在,假设我必须向 table 中插入 2 条记录,如下所示:

insert into EQUIPMENTS
    (ID, VENDOR, MODEL, PORT,  peer_equipment_id)
       VALUES (1,  'vendor1', 'model1', 'port3',  2);

由于 ID = 2 的设备行不在数据库中,因此数据库给出了引用完整性约束冲突错误。

如何为这种关系建模并仍然保持参照完整性?

任何见解都有帮助。非常感谢。

insert, insert, update:

insert into EQUIPMENTS (ID, VENDOR, MODEL, PORT,  peer_equipment_id)
    VALUES (1,  'vendor1', 'model1', 'port3',  NULL);

insert into EQUIPMENTS (ID, VENDOR, MODEL, PORT,  peer_equipment_id)
    VALUES (2,  'vendor2', 'model2', 'port3',  NULL);

update EQUIPMENTS
    set peer_equipment_id = 2
    where id = 1;