Куда вывести параметры поста в зависимости от категории в БД?
Есть таблица categories с полями id, name и таблица posts с полями id, title, price, category_id. Нужно реализовать другие параметры в таблице posts которые будут зависеть от категории поста. Например все посты с категорией машины должны иметь параметры: год выпуска, пробег, кузов и тд. А с категорией недвижимость будут другие параметры например: площадь, год постройки и тд. Вопрос какие есть варианты что-то подобное реализовать?
Не указал БД, но для Postgres можно использовать jsonb или hstore (jsonb предпочтительнее). В других БД может будут какие-нибудь другие решения для полуструктурированных данных.
Получается если использовать json, то я должен добавить поле parameters в таблице categories где я опишу параметры с типами например ('Машины', '{"год выпуска" : "integer", "пробег" : "integer"}'), а в таблице posts добавляю аналогичное поле только со значениями ('Лада', 300000, 1, '{"год выпуска" : 2020, "пробег": 20000}')?
ableien57al, можно и так, но лучше просто хранить поле parameters уже с конкретными значениями, т.е. для машины сразу храним {"год выпуска": 2020} и т.д. без этой косвенности.
Сергей Соловьев, Вы, видимо, никогда не работали данными структуры "как бог на душу положит". И это очень типичное отношение в таких случаях :)
Ещё в самом начале своего евангелизма Дерик рассказывал, что да, Монго это круто, но потом оказывается, что каждый пишет своё. Что-то там про обозначения туалетов (для openstreetmap).
Так что это только в нормальных БД такое "хождение" является бессмыслицей. А в данном случае хранение прототипа структуры данных - суровая необходимость. Да, можно хранить где-то ещё, например в коде. Но в БД - надёжнее и правильнее. Например потому, что с одной и той же БД могут работать разные сервисы. И автор очень большой молодец, что предусмотрел такое хранение.