Hvis du måler millisekunder, og dit systems disk-IO ikke er ekstremt langsom, ville mulighed 2 give bedre ydeevne. Men , taler vi om en ubetydelig gevinst i eksekveringstid. Da du allerede vil forespørge i DB'en for at få nyheden, ville det være meget optimeret bare at få kategorinavnet på samme tid. Jeg ville tilføje en kortlægningstabel med kategorinavn-id til kategorinavne . Og vær med på det, når du får nyheder.
Fra et fleksibilitetssynspunkt og det synspunkt at eliminere så mange mulige fejlkilder, vil jeg også gå med min ovenstående idé. Da det tilføjer fleksibilitet til dit system og holder alle dine data på ét sted. Ændring af navnet på en kategori ville kræve redigering af én kolonne i databasen i stedet for at redigere en php-konfigurationsfil eller, hvis mulighed 1 blev brugt, opdatering af hver eneste nyhedspost.
Så mit bedste råd, tilføje en tabel med kategori-navn-id til kategorinavne kortlægninger og derefter få nyhederne til at indeholde id'et for den kategori, de tilhører.
For ydeevne kan du derefter cache de data, du henter om eksisterende kategorier og andre data, så du ikke behøver at spørge databasen for disse oplysninger hele tiden.
For eksempel. Du kunne, i stedet for overhovedet at deltage, få alle kategorierne fra kategoritabellen, jeg beskrev ovenfor. Cache det i applikationen og få det først, når cachen er ugyldig. dvs. der opstår en timeout, eller dataene i db'en manipuleres.