sql >> Database teknologi >  >> RDS >> Mysql

Et bord vs flere borde

Der kan være reelle grunde til at ønske/behøve en enkelt kommentartabel. For eksempel ville det gøre det nemmere at se alle kommentarer fra en given bruger. Også søgninger gennem alle kommentarer ville være enklere (sæt et FTS-indeks på den ene tabel, og du er færdig).

På den anden side, hvis der ikke er en tvingende grund til at holde kommentarerne i en enkelt tabel, er der en mulig tredje (og ret oplagt) løsning.

Opret en separat kommentartabel for hvert element (indlæg, begivenhed, fil, dokument). RI-relationerne ville være meget enkle at definere og beskrive i den situation. Hvis du skriver ad hoc-forespørgsler meget ofte, kan det også gøre det lettere. For eksempel

 select * from documents d left join doc_comments c 
                           on d.id = c.docid 
                           where d.id=42;

Intet af dette er muligvis relevant eller vigtigt for din situation, men det kunne være værd at overveje.

En yderligere tilfældig tanke:Begge løsninger i OP har "fornemmelsen", at de definerer et mange-til-mange forhold (f.eks. kan en kommentar tilhøre flere elementer). Hvis det antages, at det ikke er den ønskede situation, kan det forhindres med det passende unikke indeks, ... men stadig ... det har det oprindelige udseende, hvilket ser ud som om det kunne føre til mulig forvirring.



  1. Ruby mysql2 fejl

  2. jQuery Plugin til at opdatere live a <li> fra PHP

  3. Oracle - Fejl:'ORA-01400:kan ikke indsætte NULL i

  4. Kan jeg bruge pt-online-schema-change til at ændre en primær nøgle?