sql >> Database >  >> RDS >> Mysql

Hoe MySQL-database efficiënt te ontwerpen voor mijn specifieke geval?

Je hebt een relationeel schema als dit:

Er zijn twee manieren om dit op te lossen. De eerste, de "schone" is om je "like"-tabel te bouwen en "count(*)'s" in de juiste kolom te doen.

De tweede zou zijn om in elke opmerking een teller op te slaan, die aangeeft hoeveel up's en downs er zijn geweest. Als u wilt controleren of een specifieke gebruiker op de opmerking heeft gestemd, hoeft u slechts één item aan te vinken, wat u kunt gemakkelijk te verwerken als eigen query en ze samen te voegen met twee buiten uw database (gebruik hiervoor een query die resulteert in comment_id en het soort stem dat de gebruiker in een specifieke thread heeft gedaan.)

Je aanpak met een door komma's gescheiden lijst is niet echt performant, omdat je het niet kunt ontleden zonder hogere intelligentie of een enorme hoeveelheid ontledingsreeksen. Als je een database hebt, gebruik die dan!

("Eén informatie - één gegevensset"!)



  1. Hoe MAIN mysql-database naar InnoDB te converteren vanuit MyIsam

  2. meerdere SQL-tabellen met PHP om sitemap te genereren

  3. Is LAST_INSERT_ID() in een transactie betrouwbaar?

  4. Kan magento meerdere MySQL-slaves gebruiken?