Komentar terakhir Anda persis seperti yang saya maksud. Senang melihat Anda mendapatkannya!
Sejak saya mulai melakukannya, saya menyelesaikan kode contoh. Perbedaan dengan apa yang Anda katakan adalah memisahkan apa yang akan berubah dari apa yang tidak (raw_material
VS raw_material_hist
) hanya menggunakan tanggal dalam seminggu, yaitu adalah hari Senin , dan berbagai batasan pemeriksaan.
CREATE TABLE raw_material
(
material_id NUMBER PRIMARY KEY,
material_blabla VARCHAR2(20)
);
CREATE TABLE wip
(
wip_id NUMBER PRIMARY KEY,
parent_raw NUMBER REFERENCES raw_material(material_id),
wip_desc VARCHAR2(20)
);
CREATE TABLE end_product
(
end_product_id NUMBER PRIMARY KEY,
parent_wip NUMBER REFERENCES wip(wip_id),
description VARCHAR2(20)
);
CREATE TABLE rm_histo
(
material_id NUMBER REFERENCES raw_material(material_id),
week_start DATE CHECK (To_char(week_start, 'D')=1),
forecast NUMBER(8) CHECK (forecast >0),
CONSTRAINT pk_rm_histo PRIMARY KEY (material_id, week_start)
);
CREATE TABLE wip_histo
(
wip_id NUMBER REFERENCES wip(wip_id),
week_start DATE CHECK(To_char(week_start, 'D')=1),
wip_user_forecast NUMBER(8) CHECK (wip_user_forecast>0),
CONSTRAINT pk_wip_histo PRIMARY KEY (wip_id, week_start)
);
CREATE TABLE end_prod_histo
(
end_product_id NUMBER REFERENCES end_product(end_product_id),
week_start DATE CHECK(To_char(week_start, 'D')=1),
end_prod_user_forecast NUMBER(8) CHECK (end_prod_user_forecast >0)
);
Dan pada akhirnya, memang Anda menggunakan tampilan untuk melihat hal-hal yang diramalkan, atau yang terwujud jika Anda memiliki banyak data. Dengan menggunakan tampilan, Anda tidak menduplikasi data, sehingga lebih aman dan mudah untuk diubah/diperbarui.
Untuk kasus penggunaan Anda 1 atau 2, ini tidak berhubungan dengan skema database. Pada akhirnya itu hanya akan memperbarui beberapa nilai untuk perkiraan, logika kasus penggunaan 1 atau 2 bisa masuk dalam prosedur PL/SQL atau apa pun yang Anda gunakan untuk antarmuka.
Sunting:Juga dari komentar terakhir Anda, Anda menyebutkan bahwa prakiraan secara manual mengatur VS yang dihitung. Jadi saya menambahkan kolom seperti itu, tetapi kredit diberikan kepada Anda
Sunting bis:Adapun nomor ember, gunakan topeng yang tepat untuk tanggal, seperti IW
atau WW
. Dua perubahan ini adalah minggu pertama tahun ini.