Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Merancang Skema Sederhana untuk Disagregasi Prakiraan Permintaan

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.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Indeks Oracle dan jenis indeks di Oracle dengan contoh

  2. Mencampur pernyataan DDL dan DML dalam satu skrip

  3. cara memanggil fungsi tersimpan dari parameter IN dan OUT di Oracle Database menggunakan Java

  4. Konversi zona waktu dalam kueri SQL

  5. Bagaimana cara men-debug ORA-01775:rantai sinonim yang berulang?