1.某企业生产若千产品, 每种产品由不同的零件组成, 有的零件可用在不同的产品上。这些零件由不同的原材料制成, 不同零件所用的材料可以相同。这些零件按所属的不同产品分别放在仓库中。
(1)试用 SOL 语句完成表的创建。
2.某百货公司有若干连锁商店,每家商店经营若干商品,每家商店有若干职工,但每个职工只能服务于一家商店。 商店聘用职工时, 需记录开始聘用时间,每每种商品可供多个职工销售; 销售时, 记录每个职工的每个职工销售多种商品,次销售商品的数量。商店进货时,记录进货时间和数量。
(1)试用 SOL 语句完成表的创建
1、使用 SQL 语句可以创建用于存储产品信息、零件信息和原材料信息的表。具体可以使用以下语句:
CREATE TABLE products (
product_id INT PRIMARY KEY,
product_name VARCHAR(255) NOT NULL
);
CREATE TABLE parts (
part_id INT PRIMARY KEY,
part_name VARCHAR(255) NOT NULL,
product_id INT NOT NULL,
FOREIGN KEY (product_id) REFERENCES products (product_id)
);
CREATE TABLE materials (
material_id INT PRIMARY KEY,
material_name VARCHAR(255) NOT NULL
);
CREATE TABLE part_materials (
part_id INT NOT NULL,
material_id INT NOT NULL,
FOREIGN KEY (part_id) REFERENCES parts (part_id),
FOREIGN KEY (material_id) REFERENCES materials (material_id)
);
CREATE TABLE stores (
store_id INT PRIMARY KEY,
store_name VARCHAR(255) NOT NULL
);
CREATE TABLE products (
product_id INT PRIMARY KEY,
product_name VARCHAR(255) NOT NULL
);
CREATE TABLE employees (
employee_id INT PRIMARY KEY,
employee_name VARCHAR(255) NOT NULL,
store_id INT NOT NULL,
hire_date DATE NOT NULL,
FOREIGN KEY (store_id) REFERENCES stores (store_id)
);
CREATE TABLE sales (
sale_id INT PRIMARY KEY,
employee_id INT NOT NULL,
product_id INT NOT NULL,
sale_date DATE NOT NULL,
quantity INT NOT NULL,
FOREIGN KEY (employee_id) REFERENCES employees (employee_id),
FOREIGN KEY (product_id) REFERENCES products (product_id)
);
CREATE TABLE purchases (
purchase_id INT PRIMARY KEY,
store_id INT NOT NULL,
product_id INT NOT NULL,
purchase_date DATE NOT NULL,
quantity INT NOT NULL,
FOREIGN KEY (store_id) REFERENCES stores (store_id),
FOREIGN KEY (product_id) REFERENCES products (product_id)
);
请注意,这里我们假设了商店表和商品表是独立的,因此需要在进货信息表中使用外键来关联商店表和商品表。
此外,建议在创建表时使用适当的数据类型来存储各个字段的信息,并使用 NOT NULL 和 PRIMARY KEY 约束来确保表中的数据有效性。
例如,对于职工信息表,我们使用 INT 类型来存储职工 ID,使用 VARCHAR 类型来存储职工名称,使用 DATE 类型来存储聘用日期,并使用 NOT NULL 和 PRIMARY KEY 约束来确保表中的数据有效性。
建表数量有要求吗? 只建一张宽表是否可行?
第一题:
各实体属性为:
产品:产品号,产品名
零件:零件号,零件名
原材料:原材料号,原材料名,类别
仓库:仓库号,仓库名
各联系的属性为:
产品组成:使用零件量
零件制造:使用原材料量
零件存储:存储量 材料存放:存储量
转换为关系模型如下:
产品(产品号,产品名,仓库号)
零件:零件号,零件名
原材料:原材料号,原材料名,类别,仓库号,存放量)
仓库(仓库号,仓库名)
产品组成(产品号,零件号,使用零件量)
零件组成(零件号,原材料号,使用原材料量)
零件储存(零件号,仓库号,存储量)
第二题: