Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Tabel database dinamis di Django

Sebuah pertanyaan menarik, yang mungkin lebih menarik.

Membuat satu tabel per pengguna adalah mimpi buruk pemeliharaan. Anda sebaiknya mendefinisikan satu tabel untuk menampung semua data pengguna, dan kemudian menggunakan kemampuan database untuk mengambil hanya baris-baris yang berkaitan dengan pengguna yang diinginkan (setelah memeriksa izin jika perlu, karena bukanlah ide yang baik untuk memberikan pengguna mana pun tanpa batasan akses ke data pengguna lain tanpa izin khusus yang telah ditetapkan).

Mengadopsi solusi yang Anda usulkan mengharuskan Anda membuat pernyataan SQL yang berisi nama tabel pengguna yang relevan. Kueri berturut-turut ke database sebagian besar akan berbeda, dan ini akan memperlambat pekerjaan karena setiap pernyataan SQL harus "disiapkan" (sintaksnya harus diperiksa, nama tabel dan kolom harus diverifikasi, izin pengguna yang meminta untuk mengakses sumber daya yang disebutkan harus diotorisasi, dan seterusnya).

Dengan menggunakan satu tabel (model) kueri yang sama dapat digunakan berulang kali, dengan parameter yang digunakan untuk memvariasikan nilai data tertentu (dalam hal ini nama pengguna yang datanya dicari). Pekerjaan basis data Anda akan berjalan lebih cepat, Anda hanya memerlukan satu model untuk menggambarkan semua data pengguna, dan pengelolaan basis data tidak akan menjadi mimpi buruk.

Keuntungan lebih lanjut adalah bahwa Django (yang tampaknya Anda gunakan) memiliki model izin berbasis pengguna yang ekstensif, dan dapat dengan mudah digunakan untuk mengautentikasi login pengguna (setelah Anda mengetahui caranya). Keuntungan-keuntungan ini sangat menarik Saya harap Anda akan menarik kembali dari ajaran sesat Anda dan memutuskan Anda dapat lolos dengan satu tabel (dan, jika Anda berencana untuk menggunakan login Django standar, hubungan dengan model Pengguna yang datang sebagai bagian sentral dari Django mana pun proyek).

Jangan ragu untuk mengajukan lebih banyak pertanyaan saat Anda melanjutkan. Sepertinya Anda baru dalam pekerjaan basis data, jadi saya telah mencoba menyajikan tingkat detail yang sesuai. Ada banyak jebakan seperti ini jika Anda tidak dapat mengakses saran yang berpengetahuan. Orang-orang di SO akan membantu Anda.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Virtualmin:Anda Tidak Memiliki Akses ke Database MySQL Ini Setelah Mengubah Kata Sandi

  2. Koneksi jarak jauh ke database clearDB heroku

  3. Mysqli UPDATE SET WHERE kesalahan sintaksis

  4. pyodbc + MySQL + Windows:Nama sumber data tidak ditemukan dan tidak ada driver default yang ditentukan

  5. kueri dinamis mysql dalam prosedur tersimpan