如何确保字段的值引用模式中现有的表名?例如,在下文中,如何获取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
);