Выделить одну запись в child

  • Автор темы trigger
  • Дата начала

trigger

Guest
Выделить одну запись в child

Есть две таблицы:
[sql]
CREATE TABLE parent(
id INT4 PRIMARY KEY
);

CREATE TABLE child(
id INT4 PRIMARY KEY,
parent INT4 NOT NULL,

FOREIGN KEY (parent)
REFERENCES parent(id)
ON DELETE CASCADE ON UPDATE CASCADE
);
[/sql]
Соответствие 1/*
Надо для каждой parent-записи как-то выделить одну из child-записей. Скажем, сделать красной. Как это лучше сделать?

Сейчас использую(если интересно):
[sql]
CREATE TABLE parent(
id INT4 PRIMARY KEY,
red_child INT4
);

CREATE TABLE child(
id INT4 PRIMARY KEY,
parent INT4 NOT NULL,

FOREIGN KEY (parent)
REFERENCES parent(id)
ON DELETE CASCADE ON UPDATE CASCADE
);

ALTER TABLE parent ADD
FOREIGN KEY (red_child)
REFERENCES child(id)
ON DELETE SET DEFAULT ON UPDATE CASCADE;

INSERT INTO parent(id) VALUES(1);
INSERT INTO child(id, parent) VALUES(1,1);
UPDATE parent SET red_child = 1 WHERE id = 1;
[/sql]
 
Сверху