Ако измервате милисекунди и дисковият IO на вашата система не е изключително бавен, тогава опция 2 би довела до по-добра производителност. Но , говорим за незначителна печалба във времето за изпълнение. Тъй като вече ще правите запитвания към БД, за да получите новината, би било силно оптимизирано да се получи само името на категорията в същото време. Бих добавил таблица за съпоставяне на category-name-id доимена на категории . И се присъединете към това, когато получавате новини.
От гледна точка на гъвкавостта и от гледна точка на елиминирането на възможно най-много източници на грешки, аз също бих се съгласил с горната идея. Тъй като добавя гъвкавост към вашата система и съхранява всичките ви данни на едно място. Промяната на името на категория ще изисква редактиране на една колона в базата данни вместо редактиране на php конфигурационен файл или, ако е била използвана опция 1, актуализиране на всеки нов запис.
Така че най-добрият ми съвет, добавете таблица с category-name-id доимена на категории съпоставяния и след това новините да съдържат идентификатора на категорията, към която принадлежат.
За производителност след това можете да кеширате данните, които извличате за съществуващи категории и други данни, така че да не се налага да анкетирате БД за тази информация през цялото време.
Например. Можете, вместо да се присъедините изобщо, да получите всички категории от таблицата с категории, която описах по-горе. Кеширайте го в приложението и го вземете само след като кешът е невалиден. т.е. възниква изтичане на времето или данните в db се манипулират.