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

Sprawdź wartość w wierszu MySQL

Przechowywanie wartości na forum dla użytkowników, którzy jeszcze nie przeczytali tematu (co jest złym pomysłem), nie będzie skalowalne. Zrób to odwrotnie jeśli naprawdę musisz, ponieważ będziesz mieć również problemy związane z koniecznością dodawania wpisów do każdego tematu w Twojej bazie danych po rejestracji nowego użytkownika.

Zamiast rezygnować z tabeli relacyjnej, spróbuj zrobić to w następujący sposób:

Table: topics
+----+-------+------+-----
| id | title | body | ...
+----+-------+------+-----
| 1  | xyz   | .... | ...

Table: replies
+----+-------+------+-----
| id | title | body | ...
+----+-------+------+-----
| 3  | xyz   | .... | ...

Table: read_topics
+---------+----------+
| user_id | topic_id |
+---------+----------+
| 2       | 1        |

Twoje podejście, choć możliwe (i łatwiejsze do wyobrażenia), zaczyna się załamywać, gdy masz ogromną liczbę użytkowników, a skalowalność jest tym, o czym wspominałeś w komentarzach. Innym problemem jest to, że przy swoim podejściu masz ogromny kary za wydajność, ponieważ musisz pobrać dane z bazy danych, podzielić je, a następnie manipulować i ponownie łączyć przed wykonaniem kolejnej transakcji. Masz również problemy z zapisywaniem do tabeli przez dwa wątki CGI jednocześnie . Baw się tym...

Używasz narzędzia do manipulacji danymi, sortowania, relacji danych i przechowywania, więc używaj go do wszystkich z nich, a nie tylko jako wysypiska informacji.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Projekt bazy danych Mysql dla wielu adresów klienta i adresu domyślnego

  2. Jak efektywnie wstawić dane z pliku CSV do MYSQL przy użyciu Pythona?

  3. Przygotowana instrukcja MySQL — jak przejść przez pętlę

  4. Dlaczego kolumna tekstowa nie może mieć wartości domyślnej w MySQL?

  5. Instrukcja MYSQL If w transakcji powodująca błąd