Прежде всего вам необходимо создать первичный ключ для каждой таблицы. Обычно лучший способ сделать это - использовать поле последовательного идентификатора с именем id или tablenameId. Это действительно важно. Первичные ключи, привязанные к фактическим данным, могут вызвать проблемы при изменении данных.
category (id PK, name)
category_options (id PK, category_id FK->category.id, option_name)
Так что таблица категорий будет иметь такие значения, как
(1, car)
(2, MC)
и параметры будут иметь значения, такие как
(1, 1, year)
(2, 1, fuel)
(3, 2, type)
Тогда вам нужна таблица, где значения на самом деле хранятся и связаны с элементом. Для этого просто необходимо объединить все 3 таблицы категорий при выполнении запроса для одного элемента.
category_values (id PK, category_options_id FK-> category_options.id, value, classified_id FK->classified.id)
Для классифицированной таблицы требуется поле fk для плаката и идентификатора.
classified (id PK, poster_id FK->poster.id, headline, description, hide_telephone_nr, changeable, action, price, modify_date)
Таблица плакатов довольно хороша, так как она просто добавляет поле id для первичного ключа Я просто думаю, что его обычно называют пользователями.
Под category_options_id FK-> category_options.id Я имею в виду, что category_options_id должен иметь ссылку на внешний ключ для category_options.id.
Вы могли бы сделать еще больше нормализаций, например, для классифицированных и активных, но это также добавляет сложности.
Надеюсь, это поможет.
Я также должен подчеркнуть, что это не единственно возможное решение, и в зависимости от того, как вы на самом деле хотите использовать данные, это может быть не лучшим вариантом, но оно работает и по крайней мере прилично:)