Er kunnen echte redenen zijn om een enkele tabel met opmerkingen te willen/nodig hebben. Het zou het bijvoorbeeld eenvoudiger maken om alle opmerkingen van een bepaalde gebruiker te bekijken. Ook zou het zoeken door alle opmerkingen eenvoudiger zijn (zet één FTS-index op de ene tabel en je bent klaar).
Aan de andere kant, als er geen dwingende reden is om de opmerkingen in één tabel te houden, is er een mogelijke derde (en nogal voor de hand liggende) oplossing.
Maak een aparte opmerkingentabel voor elk item (post, evenement, bestand, document). De RI-relaties zouden in die situatie heel eenvoudig te definiëren en te beschrijven zijn. Als u heel vaak ad-hocvragen typt, kan dit het eenvoudiger maken. Bijvoorbeeld
select * from documents d left join doc_comments c
on d.id = c.docid
where d.id=42;
Dit alles is misschien niet relevant of belangrijk voor uw situatie, maar het kan het overwegen waard zijn.
Nog een willekeurige gedachte:beide oplossingen in het OP hebben het "gevoel" dat ze een veel-op-veel-relatie definiëren (een opmerking kan bijvoorbeeld bij meerdere items horen). Ervan uitgaande dat dit niet de gewenste situatie is, kan het worden voorkomen met de juiste unieke index, ... maar toch ... het heeft die eerste schijn, die lijkt te kunnen leiden tot mogelijke verwarring.