Есть связь один ко многим и поэтому решил вынести поле в отдельную таблицу. Собственно поле будет одно
type (varchar(20) с уникальными значениями) и самих записей в этой таблице будет несколько десятков. Нужно ли создавать дополнительное поле например id, делать его PRIMARY KEY и чтобы на него ссылалась другая таблица? Или же лучше оставить таблицу с одним полем и напрямую на type ссылаться?
Melkij, спасибо, почитал про перечисления. Вариант интересный, но у меня возможны периодические добавления значений, в случае отсутствия в этом списке. Как с таблицей это сделать понимаю (например INSERT... ON CONFLICT DO NOTHING). С перечислениями не все так просто как я понимаю? Плюс наткнулся на упоминание того, что так как это нестандартный тип, то могут быть проблемы со строковыми операциями(к примеру поиск по шаблону).
Если значения должен редактировать пользователь - тогда да, enum не надо. Он для системных вещей. Статусы всякие, которые без изменения связанного кода и менять смысла нет.
Если выносим в отдельную таблицу, то суррогатный PK обязательно должен быть.
Если PK не добавлять, то нет никакого смысла выносить это поле в отдельную таблицу.
P.S. Я бы вообще не выносил в отдельную таблицу, чтобы не делать лишних соединений в будущем.