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

Bagaimana menangani penyimpanan besar catatan dalam database untuk tujuan otorisasi pengguna?

Faktanya adalah jika Anda menginginkan izin tingkat artikel per pengguna maka Anda memerlukan cara untuk menghubungkan User s ke Article s mereka dapat mengakses. Ini memerlukan minimum Anda memerlukan N*A (di mana A adalah jumlah artikel yang diizinkan secara unik).

Pendekatan 3NF untuk ini adalah, seperti yang Anda sarankan, untuk memiliki UsersArticles set... yang akan menjadi tabel yang sangat besar (seperti yang Anda catat).

Pertimbangkan bahwa tabel ini akan banyak diakses...Bagi saya ini seperti salah satu situasi di mana pendekatan yang sedikit didenormalisasi (atau bahkan noSQL) lebih tepat.

Pertimbangkan model yang digunakan Twitter untuk tabel pengikut pengguna mereka:

Jeff Atwood tentang masalah ini

Blog Dan Skalabilitas Tinggi

Contoh dari potongan-potongan itu adalah pelajaran yang dipetik di Twitter bahwa menanyakan pengikut dari tabel yang dinormalisasi memberi tekanan luar biasa pada Users meja. Solusi mereka adalah mendenormalisasi pengikut sehingga pengikut pengguna disimpan di pengaturan pengguna masing-masing.

Saya membayangkan pendekatan serupa dapat digunakan untuk melayani izin artikel dan menghindari UsersArticles yang sangat tertekan satu meja.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Partisi tabel MySQL berdasarkan bulan

  2. Bagaimana cara mereset kata sandi root mysql?

  3. Driver Mysql JDBC ClassNotFoundException

  4. mysql lambat pada kueri pertama, lalu cepat untuk kueri terkait

  5. Alat diagram ER open source untuk mysql