В качестве руководящего принципа предпочтите больше столбцов, чем больше таблиц, и больше столбцов, чем больше столбцов.Это потому, что каждое предпочтение проще для реализации и управления, чем другое.
Проблема с вашим подходом в том, что каждый раз, когда у вас появляется новый тип вещей, вам понадобится новая таблица.Это потребует изменения схемы и нового кода, чтобы справиться с этим.Важно отметить, что эти новые вещи не будут обнаруживаться вашим приложением.
Вместо этого создайте таблицу для всех вещей:
create table part (
id int,
name varchar(99),
price real
-- more columns for attributes that ALL parts have (if any)
)
Поскольку разные детали имеют разные атрибуты, иметь много многостолбцов в этой таблице, большинство из которых не используются.Создайте таблицы для специальных атрибутов:
create table part_attr (
part_id int references part(id),
name varchar(99),
value varchar(99)
-- possibly other columns
)
Затем используйте код, чтобы объединить все это в выпадающий список и т. Д.