我有一个程序可以将不同的材料组合成一种新材料。存储此类数据的最佳实践是什么? (即,视图或表格或其他东西?)
表 1:
MATERIAL_ID | MATERIAL_DESC |
---|---|
1 | 苹果 |
2 | 糖 |
3 | 肉桂 |
4 | PIE_CRUST |
输入:组装材料 -->
-- 苹果
-- 糖
-- 肉桂
-- PIE_CRUST
输出:材料组装-->
-- APPLE_PIE 已创建
我认为 APPLE_PIE 应该作为带有新 MATERIAL_ID 的 MATERIAL 返回到原始表中,但是我应该如何处理旧数据?
在某些情况下,可以从组件中取出材料。当发生这种情况时,它应该保留它的原始 MATERIAL_ID 还是只拥有一个新的并清除旧数据?我不知道这种情况的最佳做法是什么。如果可能的话,我希望看到比理论更实用的东西。
答案 0 :(得分:1)
我假设您已经知道作为输出结果将创建什么材料,因此您只需在材料表中插入新材料,然后在其他表中插入配方。
您可以在修改 material_recipe 表的任何配方中删除或添加新材料。
以下代码示例:
create table material
(
material_id number generated by default as identity,
material_desc varchar2(4000)
);
create table material_recipe (
material_id number,
recipe_id number
);
--Existent materials
insert into material (material_desc) values ('apple');
insert into material (material_desc) values ('sugar');
insert into material (material_desc) values ('cinamon');
insert into material (material_desc) values ('pie_crust');
--New material
insert into material (material_desc) values ('apple_pie'); --id 5
insert into material_recipe values (5, 1);
insert into material_recipe values (5, 2);
insert into material_recipe values (5, 3);
insert into material_recipe values (5, 4);
commit;