Mysql
 sql >> база данни >  >> RDS >> Mysql

Как да се справим с масивното съхранение на записи в базата данни за целите на упълномощаване на потребителя?

Фактът е, че ако искате разрешения на ниво статия на потребител тогава имате нужда от начин да свържете User s към Article и имат достъп. Това изисква минимум имате нужда от N*A (където A е броят на статиите с уникално разрешение).

Подходът 3NF към това би бил, както предложихте, да имате UsersArticles комплект... което би било много голяма маса (както отбелязахте).

Имайте предвид, че тази таблица ще бъде достъпна много... Това ми изглежда като една от ситуациите, в които леко денормализиран подход (или дори noSQL) е по-подходящ.

Помислете за модела, който Twitter използва за своите потребителски таблици за последователи:

Джеф Атууд по темата

И блог с висока скалируемост

Извадка от тези парчета е урок, научен в Twitter, че запитването на последователи от нормализирана таблица поставя огромен стрес върху Users маса. Тяхното решение беше да денормализират последователите, така че последователите на потребителя да се съхраняват в техните индивидуални потребителски настройки.

Предполагам, че подобен подход може да се използва за обслужване на разрешения за статии и избягване на изключително напрегнати UsersArticles единична маса.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Изберете ВСИЧКИ полета, които съдържат само ГЛАВНИ букви

  2. Как да вмъкна нов ред в базата данни с колона AUTO_INCREMENT, без да указвате имена на колони?

  3. MYSQL цикъл на курсора, изпълнява един допълнителен кръг, защо?

  4. Динамично зареждане на данни при превъртане на div с помощта на php, mysql, jquery и ajax

  5. Грешка в MySql 150 - Външни ключове