绘制具有停车和收费子类型的站点和摄像机表格,其中站点仅包含相同类型的摄像机

问题描述 投票:0回答:1

我们有桌子和相机。一个站点可以包含多个摄像机。我定义了子类型 parking_site 和 parking_camera。 parking_site 只能包含停车摄像头。我定义了 tolling_site 和 tolling_camera,其中应用相同的规则。 不可能进入站点或摄像头的一般入口,因为所有站点和摄像头都应该是停车场或收费站。

什么是数据库关系图?

什么是创建表的 SQL 查询?

我的想法。

sql database postgresql database-design
1个回答
0
投票

我会使用类似以下的东西:

CREATE TABLE subtype (
   subtype_id smallint PRIMARY KEY,
   name text UNIQUE NOT NULL
);

INSERT INTO subtype (subtype_id, name)
VALUES (1, 'parking')
       (2, 'tolling');

CREATE TABLE site (
   site_id bigint PRIMARY KEY,
   subtype_id smallint REFERENCES subtype NOT NULL,
   name text NOT NULL,
   /* this is needed ony for the foreign key */
   UNIQUE (subtype_id, site_id)
);

CREATE TABLE camera (
   camera_id bigint PRIMARY KEY,
   site_id bigint NOT NULL,
   subtype_id smallint REFERENCES subtype NOT NULL,
   FOREIGN KEY (subtype_id, site_id) REFERENCES site (subtype_id, site_id),
   ...
);
© www.soinside.com 2019 - 2024. All rights reserved.