18 lines
991 B
SQL
18 lines
991 B
SQL
-- data_table_links: связи между справочниками (родитель → подсправочник)
|
|
CREATE TABLE IF NOT EXISTS data_table_links (
|
|
id SERIAL PRIMARY KEY,
|
|
organization_id INTEGER NOT NULL REFERENCES organizations(id) ON DELETE CASCADE,
|
|
parent_table_id INTEGER NOT NULL REFERENCES data_tables(id) ON DELETE CASCADE,
|
|
child_table_id INTEGER NOT NULL REFERENCES data_tables(id) ON DELETE CASCADE,
|
|
parent_column_index INTEGER NOT NULL DEFAULT 0,
|
|
child_column_index INTEGER NOT NULL DEFAULT 0,
|
|
parent_values JSONB NOT NULL DEFAULT '[]',
|
|
created_at TIMESTAMPTZ NOT NULL DEFAULT now(),
|
|
updated_at TIMESTAMPTZ NOT NULL DEFAULT now()
|
|
);
|
|
|
|
CREATE INDEX IF NOT EXISTS data_table_links_parent_idx ON data_table_links(parent_table_id);
|
|
CREATE INDEX IF NOT EXISTS data_table_links_child_idx ON data_table_links(child_table_id);
|
|
CREATE UNIQUE INDEX IF NOT EXISTS data_table_links_parent_child_unique
|
|
ON data_table_links(parent_table_id, child_table_id);
|