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.)