Я всегда так думаю:
- сколько там элементов? Если больше 3, я бы пошел с DB
- это приложение для меня или клиента? Если бы это было для клиента, я бы использовал db (немного грубого взаимодействия с администратором, чтобы он сам мог добавлять / удалять / изменять категории даже после окончания разработки).
Такие вещи, как категории, представляют собой данные, которые поступают от клиентов - если они приходят от клиентов, дайте клиентам контроль над тем, что находится внутри (и сэкономьте свое время на
изменить исходный код). Таким образом, они могут предоставить файл excel / cvs, который вы можете использовать для заполнения базы данных исходными записями (без изменения исходного кода). Это тоже проще
позже, чтобы сделать разные трюки в SQL (объединяет), если категории находятся в БД.
ИМХО, единственное место, где я бы использовал жестко закодированный хеш / массив, это некоторые (2-3) атрибуты с несколькими значениями, например роли пользователей (конечно, если они статичны).