sql >> Database >  >> RDS >> Mysql

Eén tafel versus meerdere tafels

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.



  1. Java:voeg meerdere rijen in MySQL in met PreparedStatement

  2. Badges maken voor mijn site, de beste manier om gebruikersbadges op te slaan? PHP gebruiken

  3. JDBC-tekencodering

  4. mysql limit ineenstorting, wat resulteert in data interactie