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

Desain DB untuk menyimpan bidang khusus untuk tabel

Ini adalah masalah umum dan tidak ada solusi yang sempurna. Beberapa solusi:

1. Tentukan bidang X jenis varchar2, bidang Y jenis nomor dan bidang Z jenis tanggal. Itu berpotensi 3 kali lipat jumlah bidang khusus tetapi Anda tidak akan pernah memiliki masalah konversi lagi.

Contoh Anda akan keluar seperti ini:

Id Name field_char1  field2_char2 field_char3 ... field_num1 field_num2 ...
1  lap1 lappy        lappy        lappy       ... 12         13     
2  lap2 lappy2       lappy2       lapp2       ... 13         12

Dalam contoh Anda, Anda memiliki jumlah nilai numerik dan nilai karakter yang sama pada kedua baris tetapi tidak harus seperti ini:misalnya, baris ketiga tidak boleh memiliki bidang numerik.

2. Tentukan bidang X tipe varchar2 dan terapkan fungsi bijektif untuk menyimpan nomor atau bidang tanggal (misalnya Tanggal dapat disimpan sebagai YYYYMMDDHH24miss ). Anda juga memerlukan bidang tambahan yang akan menentukan konteks baris. Anda akan menerapkan to_number atau to_char berfungsi hanya jika baris memiliki tipe yang baik.

Contoh Anda:

Id Name context field1  field2 field3  field4 field5
1  lap1 type A  lappy   lappy  12      13     lappy
2  lap2 type B  lappy2  13     lappy2  lapp2  12

Anda dapat menanyakan tabel menggunakan DECODE atau CASE:

SELECT * 
  FROM laptop
 WHERE CASE WHEN context = 'TYPE A' THEN to_number(field3) END = 12

Desain kedua adalah yang digunakan dalam Oracle Financials ERP (antara lain). Konteks memungkinkan Anda untuk menentukan batasan CHECK dengan desain ini (misalnya CHECK (CASE WHEN context = 'TYPE A' THEN to_number(field3) > 0 ) untuk memastikan integritas.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. qt + masalah koneksi oracle

  2. Bagaimana cara memindahkan file Zip ke kolom gumpalan di Jawa?

  3. Memasukkan CLOB menggunakan cx_Oracle

  4. Tipe data stempel waktu Oracle

  5. Oracle SQL Query untuk mendaftar semua Skema dalam DB