Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Jak obsłużyć masowe przechowywanie rekordów w bazie danych w celu autoryzacji użytkowników?

Faktem jest, że jeśli chcesz uprawnienia na poziomie artykułu na użytkownika wtedy potrzebujesz sposobu na powiązanie User s do Article s mają dostęp. Wymaga to minimum potrzebujesz N*A (gdzie A jest liczbą artykułów z unikalnymi uprawnieniami).

Podejściem 3NF do tego byłoby, jak sugerowałeś, posiadanie UsersArticles zestaw... który byłby bardzo dużym stołem (jak zauważyłeś).

Weź pod uwagę, że dostęp do tej tabeli byłby bardzo często… Wydaje mi się, że jest to jedna z sytuacji, w których bardziej odpowiednie jest nieco zdenormalizowane podejście (lub nawet noSQL).

Rozważ model, którego używa Twitter dla swoich tabel obserwujących użytkowników:

Jeff Atwood na ten temat

I blog o wysokiej skalowalności

Próbka z tych fragmentów to lekcja wyciągnięta z Twittera, że ​​wysyłanie zapytań do obserwujących ze znormalizowanej tabeli kładzie ogromny nacisk na Users stół. Ich rozwiązaniem była denormalizacja obserwujących, tak aby obserwujący użytkownika byli przechowywani w ich indywidualnych ustawieniach użytkownika.

Wyobrażam sobie, że podobne podejście można zastosować do obsługi uprawnień do artykułów i uniknięcia niezwykle stresującego UsersArticles pojedynczy stół.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak Kupony WooCommerce są przechowywane w bazie danych?

  2. Ignoruj ​​komunikaty o błędach mysql podczas wykonywania pliku sql

  3. Przechowywanie adresu IP w bazie danych MySQL (IPv4 I IPv6)

  4. Jak zainstalować i skonfigurować phpMyAdmin w CentOS 6?

  5. Błąd:Tabela „mysql.proc” nie istnieje podczas dodawania źródła danych MySQL do projektu Visual Studio