PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

Cara menyimpan array atau beberapa nilai dalam satu kolom

Anda memiliki beberapa pertanyaan di sini, jadi saya akan menjawabnya secara terpisah:

Saya perlu menyimpan sejumlah item yang dipilih dalam satu bidang dalam database

Aturan umum saya adalah:jangan. Ini adalah sesuatu yang hanya memerlukan tabel kedua (atau ketiga) dengan kunci asing. Tentu, ini mungkin tampak lebih mudah sekarang, tetapi bagaimana jika use case muncul di mana Anda perlu benar-benar menanyakan item-item itu satu per satu? Ini juga berarti bahwa Anda memiliki lebih banyak opsi untuk instantiasi malas dan Anda memiliki pengalaman yang lebih konsisten di berbagai kerangka kerja/bahasa. Selanjutnya, Anda cenderung tidak mengalami masalah waktu tunggu koneksi (30.000 karakter banyak).

Anda menyebutkan bahwa Anda berpikir untuk menggunakan ENUM. Apakah nilai-nilai ini tetap? Apakah Anda mengenal mereka sebelumnya? Jika demikian ini akan menjadi struktur saya:

Tabel dasar (apa yang Anda miliki sekarang):

| id primary_key sequence
| -- other columns here.

Tabel item:

| id primary_key sequence
| descript VARCHAR(30) UNIQUE

Tabel peta:

| base_id  bigint
| items_id bigint

Tabel peta akan memiliki kunci asing sehingga base_id dipetakan ke tabel Base, dan items_id akan dipetakan ke tabel item.

Dan jika Anda ingin cara mudah untuk mengambil ini dari DB, buat tampilan yang menggabungkan. Anda bahkan dapat membuat aturan penyisipan dan pembaruan sehingga praktis hanya berurusan dengan satu tabel.

Format apa yang harus saya gunakan untuk menyimpan data?

Jika Anda harus melakukan sesuatu seperti ini, mengapa tidak menggunakan karakter string yang digambarkan saja? Ini akan membutuhkan daya pemrosesan yang lebih sedikit daripada CSV, XML, atau JSON, dan akan lebih pendek.

Tipe kolom apa yang harus saya gunakan untuk menyimpan data?

Secara pribadi, saya akan menggunakan TEXT . Kedengarannya Anda tidak akan mendapatkan banyak keuntungan dengan menjadikan ini sebagai BLOB , dan TEXT , menurut pengalaman saya, lebih mudah dibaca jika Anda menggunakan beberapa bentuk IDE.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cara Mengonversi Kasus String di PostgreSQL

  2. Bagaimana cara merotasi log PgBouncer di Linux/Windows?

  3. Solusi Cloud PostgreSQL Terkelola Pembandingan - Bagian Empat:Microsoft Azure

  4. Panduan untuk Pgpool untuk PostgreSQL:Bagian Satu

  5. Bagaimana cara menghubungkan aplikasi C# Windows mobile 6.5 ke database Postgres?