у меня класс животных
Там есть жираф и кукуха
У них есть пара разных полей, но в коде я работаю с ними как с Животными (базовый класс)
соответсвенно мне из бд надо тянуть именно Животных, но чтоб количество крыльев у кукухи условно все-таки сохранилось
Как такое можно решить?
Делать репозиторий животных, и внутри него тянуть в два запроса с Кукухи и Жирфа?
Мне не очень нравится такое решение, ибо оно херово расширяется, верю что есть варианты получше
Возможно тупо сформулировал, но я в вас верю, вы поймете
если что, го уточню
1к1
Ну есть подходы таблица на класс и таблица на иерархию, это и гуглить как в еф задать
Тебе стоит уточнить в каком типе бд ты собираешься это хранить
Не читал следующие 400+ сообщения, может тебе уже чета дельное насоветовали, но я похожее решал так: есть просто одна таблица с базовыми полями и указанием какого типа запись и дальше связь 1 ко многим, где указаны свойства и значения дополнительных данных. Гибко в плане расширения. Есть еще вариант плоской таблицы, которая будет содержать все поля всех наследников, но селект из базы будет происходить только по нужным полям, но это для небольших моделей еще имеет смысл
1) юзать монгу как отдельный сервис 2) юзать постгрес где есть возможность хранить и работать с json 3) юзать постгрес - есть возможность наследовать таблицы + к тому, что уже сказали
а почему 1 к многим?
Во второй таблице у тебя 1 запись на каждое свойство, грубо говоря внешний ключ на основную, поле и его значение
попробуй подход Table per Hierarchy
угу, уже посоветовали его, спасибо)
уф, а почему не 1к1? просто отдельные таблицы для каждого типа
Например так удобно датчики от гпс трекера хранить - в основной координаты, время скорость, а в дополнительной уже разные датчики типа уровня топлива, напряжения акума и тд, везде по разному в разной технике
а, окей, то есть у тебя нет конкретных классов
Обсуждают сегодня