Ваша типичная СУБД не понимает понятия «указатель», поэтому, чтобы «связать» две таблицы, некоторые значения из одной таблицы должны быть физически скопированы в другую.Кроме того, всякий раз, когда вы создаете индекс, копия данных из индексированных столбцов будет храниться в этом индексе.
Существуют очень веские причины, по которым в базах данных нет указателей.В частности, СУБД может перемещать данные внутри физического хранилища, не беспокоясь о зависании указателей.Одно это вполне оправдывает несколько повышенные требования к хранилищу (по сравнению с гипотетической СУБД с использованием указателей вместо копий), поэтому вам просто придется с этим смириться.
При этом делатьнормализуйте ваши данные.Ответ Майкла Фредриксона уже охватывал отношение M: N, но в случае, если это фактически 1: N (т.е. значение не может быть в более чем одной категории), вам нужно что-то вроде этого: