sql >> Database >  >> RDS >> Mysql

mysql-structuur voor berichten en opmerkingen

Op een basisniveau zou u een tabel hebben voor elk type "ding" in uw toepassing. In dit geval een tabel voor berichten en een tabel voor opmerkingen. Zoiets simpels als dit:

Post
--------
Id
Content
User
DatePosted

Comment
--------
Id
PostId
Content
User
DatePosted

Dit zou een zogenaamde een-op-veel-relatie (of eigenlijk nul-op-veel) creëren tussen Berichten en Reacties, waarbij elke Post nul of meer bijbehorende Pomments kan hebben, maar elke Reactie aan slechts één Post kan worden gekoppeld.

In je code (die een heel ander onderwerp is), om een ​​bericht en de bijbehorende opmerkingen weer te geven, zijn er een aantal dingen die je zou kunnen doen. Ervan uitgaande dat u, als invoer, de Id van het bericht dat je wilt, kun je dat bericht en zijn opmerkingen krijgen:

SELECT `Content`, `User`, `DatePosted` FROM `Post` WHERE `Id` = ?Id
SELECT `Id`, `Content`, `User`, `DatePosted` FROM `Comment` WHERE `PostId` = ?Id

Wat u met die resulterende gegevens doet, is aan u en hoe u deze in uw toepassing wilt gebruiken. Het zou terugkomen als twee tabelresultaten, waarvan de eerste één record heeft (als de Post bestaat) en de laatste nul of meer records heeft. Natuurlijk wilt u controleren of dingen bestaan ​​voordat u ze probeert te gebruiken, enz. (Dus als de eerste zoekopdracht geen resultaten oplevert, probeer dan niet door te gaan met het weergeven van de Post. Toon gewoon een standaardantwoord of een fout.)




  1. Introductie van op agenten gebaseerde databasebewaking met ClusterControl 1.7

  2. Roep een set-retourfunctie met een array-argument meerdere keren aan

  3. Vind de op één na hoogste salaris best mogelijke manieren

  4. Het dubbele aanhalingsteken weglaten om een ​​query uit te voeren op PostgreSQL