我想修改以下 DDL 以添加 CHECK 约束,以便商店的经理在同一家商店工作,并且商店提供所有产品(如果其类型为“本地”)。
有人可以帮忙吗?
CREATE TABLE employee(
employee_number CHAR(5) NOT NULL,
name VARCHAR(30),
store_code CHAR(5)
PRIMARY KEY(employee_number),
FOREIGN KEY(store_code) REFERENCES store
)
CREATE TABLE store(
store_code CHAR(5) NOT NULL,
type VARCHAR(15),
employee_number CHAR(5),
PRIMARY KEY(store_code),
FOREIGN KEY(employee_number) REFERENCES employee
)
CREATE TABLE product(
product_code CHAR(5) NOT NULL,
description VARCHAR(150),
cost DEC(10,2),
PRIMARY KEY(product_code)
)
CREATE TABLE stocks(
store_code CHAR(5) NOT NULL,
product_code CHAR(5) NOT NULL,
PRIMARY KEY(product_code, store_code),
FOREIGN KEY(product_key) REFERENCES product,
FOREIGN KEY(store_code) REFERENCES store
)
CHECK 约束仅限于单个表中的单个行。
如果你真的想实施这种检查,我想你必须使用触发器。
请注意,您已经为工作和管理建立了多对多关系模型。如果它是多对一,那么它是可行的,因为它看起来像 Employee(number, name,works_at_store_code,manages_store_code)。约束只是 CHECK(manages_store_code 为 null 或 Manages_store_code = Works_at_store_code)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)