Postgres约束字段到引用表名称

时间:2016-02-16 17:46:52

标签: postgresql constraints check-constraints

如何确保字段的值引用模式中现有的表名?例如,在下文中,如何获取properties表中的item字段以有效地对ELEMENT REFERENCES模式中的表名进行property

(注意:我相信ELEMENT REFERENCES仅在Postgres 9.6或更高版本中可用,因此我会创建一个item_property'加入'表。)

CREATE SCHEMA property;

CREATE TABLE item (
    id         SERIAL4 PRIMARY KEY,
    name       TEXT NOT NULL,
    -- e.g. iPhone, hamburger
    properties TEXT[] NOT NULL
    -- e.g. {'property_taste'}
);

CREATE TABLE property.taste (
    item_id        INT4 REFERENCES item PRIMARY KEY,
    description    TEXT NOT NULL
    -- e.g. sweet, sour, salty, savory
);

CREATE TABLE property.processor (
    item_id        INT4 REFERENCES item PRIMARY KEY,
    num_cores      INT2 NOT NULL,
    -- e.g. 4
    freq_mhz       INT2 NOT NULL
    -- e.g. 1600
);

0 个答案:

没有答案