提问人:Guantol 提问时间:10/21/2023 最后编辑:Guantol 更新时间:10/22/2023 访问量:69
如何在多值属性上强加非 null?
How to impose not null on a multivalued attribute?
问:
我有一个具有多值属性 (Category) 的产品实体。
在将此实体转换为 SQL 时,我为 Category 创建了一个单独的表,如下所示:
create table Product (
Bar_Code VARCHAR(15) NOT NULL,
Price DECIMAL(5,2) NOT NULL,
Discount DECIMAL(3,2) NOT NULL,
CONSTRAINT pk_product PRIMARY KEY (Bar_Code)
);
create table Category (
Bar_Code VARCHAR(15) NOT NULL,
Category VARCHAR(50) NOT NULL,
CONSTRAINT pk_category PRIMARY KEY (Bar_Code, Category),
CONSTRAINT fk_category FOREIGN KEY (Bar_Code) REFERENCES Product (Bar_Code) ON DELETE CASCADE
);
但是出现了一个问题,我如何强制要求 Product 表中的条目必须与类别中的至少 1 个条目相关?
我知道,由于 Category 上的外键约束,我无法在 Product 之前填充该表。
如果我在对 Product 执行插入操作之前或之后创建一个触发器,以检查是否存在相对条目,那么我基本上将阻止对 Table 进行任何类型的插入操作。
我解决这个问题的唯一方法是创建一个填充两个表的过程,但我想知道是否有更优雅的解决方案?
答: 暂无答案
评论