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

membuat juta tabel dalam database?

Jika Anda membutuhkan satu juta tabel dalam database Anda, Anda salah melakukannya.

Tabel dimaksudkan untuk mewakili data yang berbeda secara struktural dan konseptual. Dan saya menolak untuk percaya bahwa Anda beroperasi dengan sejuta konsep berbeda dalam aplikasi Anda.

Terkadang, pemula percaya bahwa mereka harus membuat tabel per pengguna, misalnya. Tetapi "pengguna" adalah satu konsep, dan Anda menyimpan informasi yang sama untuk setiap pengguna (nama, email, nama pengguna, kata sandi, misalnya), jadi seharusnya satu tabel, di mana setiap pengguna hanyalah baris terpisah.

Sepertinya Anda membuat kesalahan yang sama, mungkin tidak dengan pengguna, tetapi dengan beberapa abstraksi lain yang memiliki banyak contoh. Setiap instance harus berupa baris dalam satu tabel.

Jika Anda menjelaskan kepada kami apa yang Anda coba simpan dalam database, kami hampir pasti dapat membantu Anda mengetahui bagaimana seharusnya dipetakan ke tabel.

Sunting
setelah membaca komentar Anda (yang seharusnya benar-benar diedit menjadi pertanyaan itu sendiri), inilah pemikiran saya:

Jika semua data disusun dengan cara yang sama (seperti tiga kali lipat), Anda cukup menyimpan semuanya dalam satu tabel dengan tiga kolom, lalu menambahkan indeks yang diperlukan untuk pencarian yang efisien.

Jika semua predikat diketahui sebelumnya, Anda bisa buat tabel per predikat, tapi saya tidak begitu yakin seberapa masuk akal itu.

Opsi terbersih mungkin adalah memiliki 4 tabel:
(id, subject) , (id, predicate) , (id, object) ,(subjectid, predicateid, objectid) .



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Deteksi item duplikat dalam CTE rekursif

  2. pelanggaran indeks unik selama pembaruan

  3. Tanggal hingga milidetik / milidetik hingga saat ini

  4. Kurangi Bulan dari Tanggal di PostgreSQL

  5. SQL beberapa kolom berbeda