sql >> Databasteknik >  >> RDS >> Mysql

Kontrollera efter värde i MySQL-raden

Att lagra dina värden för ett forum för användare som ännu inte har läst ämnet (vilket är en dålig idé) kommer inte att vara skalbart. Gör det tvärtom om du verkligen måste, eftersom du också har de problem som är förknippade med att behöva lägga till poster i varje ämne i din databas vid en ny användarregistrering.

Istället för att avstå från en relationstabell, försök istället att göra det enligt följande:

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

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

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

Ditt tillvägagångssätt, även om det är möjligt (och lättare att föreställa sig), börjar gå sönder när du har enorma mängder användare, och skalbarhet är vad du antydde i kommentarerna. Ett annat problem här är att med ditt tillvägagångssätt har du massiv prestationspåföljder eftersom du måste hämta data från databasen, dela upp den och sedan manipulera och kombinera om, innan du gör en annan transaktion. Du har också problem med att låta skriva till tabellen av två CGI-trådar samtidigt . Ha kul med det...

Du använder ett verktyg för datamanipulation, sortering, datarelationer och lagring, så använd det för dem alla, inte bara som en dumpningsplats för information.



  1. Konvertera mellan ologiskt formaterade datum (ändrar /slash/ till -dash- )

  2. Docker MYSQL '[2002] Connection refused'

  3. SQL Injection och LIMIT-satsen

  4. Uppdatera rad med data från en annan rad i samma tabell