. , ( PostgreSQL, SQL):
CREATE TABLE child (
child_id serial PRIMARY KEY
, parent_id int NOT NULL REFERENCES parent
, child_nr int NOT NULL
, CHECK (child_nr BETWEEN 1 AND 3)
, UNIQUE (parent_id, child_nr)
);
, 1 3 - . .
(parent_id, child_nr), PK child_id. ...
, , , , . concurrency, , , , .
child_nr?
(), . child_nr . .
( , ). (parent_id, child_nr) NULL.
UPDATE, INSERT DELETE (GRANT/REVOKE), , . FK parent ON DELETE CASCADE, .
Alternative
, : parent <= 3. child . .