有没有人知道并告诉如何在DB2数据库中使用超类型子类型逻辑解决方案实现物理实体。
答案 0 :(得分:2)
与你使用的RDBMS基本相同: -
CREATE TABLE VEHICLES (
V_ID INTEGER PRIMARY KEY,
V_DESCRIPTION VARCHAR(20),
V_MAKE VARCHAR(20),
V_MODEL VARCHAR(20),
V_COST DECIMAL(8,2),
V_ETC VARCHAR(50),
V_TYPE SMALLINT
-- 1 -> CAR
-- 2 -> BICYCLE
);
CREATE TABLE CARS (
V_ID INTEGER PRIMARY KEY,
V_ENGINE_SIZE DECIMAL(6),
V_SEATS SMALLINT
);
CREATE TABLE BICYCLES (
V_ID INTEGER PRIMARY KEY,
GEARS SMALLINT
);
VEHICLES是你的超类型,包含所有车辆共有的属性,CARS是VEHICLES的子类型,其中包含仅属于CARS的属性,VEHICLES表中的V_TYPE属性标识适用的子类型。
超类型和子类型的主键应该是相同的值,您可以使用外键关系强制执行此操作。