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

Jak efektywnie zaprojektować bazę danych MySQL dla mojego konkretnego przypadku?

Masz taki schemat relacyjny:

Można to rozwiązać na dwa sposoby. Pierwszym, "czystym" jest zbudowanie tabeli "lubię to" i wykonanie "count(*)" w odpowiedniej kolumnie.

Drugim sposobem jest przechowywanie w każdym komentarzu licznika, wskazującego, ile było w nim wzlotów i upadków. Jeśli chcesz sprawdzić, czy konkretny użytkownik głosował na komentarz, musisz sprawdzić tylko jeden wpis, który możesz łatwo obsłużyć jako własne zapytanie i połączyć je z dwoma poza bazą danych (w tym celu użyj zapytania, którego wynikiem jest comment_id i rodzaj głosu, jaki użytkownik oddał w określonym wątku).

Twoje podejście z listą rozdzielaną przecinkami nie jest całkiem skuteczne, ponieważ nie możesz jej przeanalizować bez większej inteligencji lub ogromnej ilości ciągów parsowania. Jeśli masz bazę danych - skorzystaj z niej!

(„Jedna informacja — jeden zbiór danych”!)



  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 utworzyć indeks w części daty pola DATETIME w MySql?

  2. Dlaczego otrzymuję inny wynik, gdy używam sprzężenia wewnętrznego?

  3. MySQL Nieprawidłowa wartość daty i godziny:'0000-00-00 00:00:00'

  4. Odzyskiwanie dostępu do utraconego hasła MySQL dla PHPMyAdmin na WAMP

  5. Jak obsługiwać wyjątki PDO