Os nomes das categorias para imagens geralmente são diferentes dos nomes das categorias para os usuários, e ambos são diferentes dos nomes das categorias para as páginas. Isso sugere que os valores são extraídos de diferentes domínios. Domínios diferentes significam tabelas diferentes.
Crie uma tabela para cada tipo de categoria. Use chaves estrangeiras.
Redundante é um termo técnico em design de banco de dados. Isso não significa que "essas duas tabelas são muito parecidas". Isso significa que as tabelas têm os mesmos valores, e esses valores têm o mesmo significado .
É claro que "Imagem primária" não tem o mesmo valor que "Usuário principal". Mas digamos, para fins de argumentação, que ambas as tabelas tenham a linha (1, Primary). Isso ainda não é redundante, porque esses dois valores têm significados diferentes. Em um caso, isso significa que qualquer imagem marcada com ela é uma imagem primária. No outro caso, significa que qualquer usuário está marcado com ele é um usuário principal . As imagens não são usuários. Significados diferentes.