如何为数据库中的对等行建模
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;
我正在数据库中建模对等 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;