21 lines
847 B
MySQL
21 lines
847 B
MySQL
|
|
CREATE TABLE IF NOT EXISTS hardware_network_links (
|
||
|
|
id SERIAL PRIMARY KEY,
|
||
|
|
source_hardware_id INTEGER NOT NULL REFERENCES hardware_assets(id) ON DELETE CASCADE,
|
||
|
|
source_port VARCHAR(100) NOT NULL,
|
||
|
|
target_hardware_id INTEGER NOT NULL REFERENCES hardware_assets(id) ON DELETE CASCADE,
|
||
|
|
target_port VARCHAR(100),
|
||
|
|
notes TEXT,
|
||
|
|
created_at TIMESTAMP NOT NULL DEFAULT NOW(),
|
||
|
|
updated_at TIMESTAMP NOT NULL DEFAULT NOW(),
|
||
|
|
deleted_at TIMESTAMP,
|
||
|
|
CHECK (source_hardware_id <> target_hardware_id)
|
||
|
|
);
|
||
|
|
|
||
|
|
CREATE UNIQUE INDEX IF NOT EXISTS idx_hardware_network_links_source_port_active
|
||
|
|
ON hardware_network_links(source_hardware_id, source_port)
|
||
|
|
WHERE deleted_at IS NULL;
|
||
|
|
|
||
|
|
CREATE INDEX IF NOT EXISTS idx_hardware_network_links_target_active
|
||
|
|
ON hardware_network_links(target_hardware_id)
|
||
|
|
WHERE deleted_at IS NULL;
|