Как в джанго обстоит с множественным наследованием моделей?
А как в джанго обстоит с миксинами к моделям (читай множественному наследованию). Допустим я делаю инет-магазин, у меня есть модель Item (товар). Тут я выясняю, что для одного типа товаров есть характеристики (например, длина и цвет). А для другого типа есть другие характеристики (материал) и нет первых. Добавлять к общей Item смысла все свойства нет.
Так вот можно ли создать миксин типа CustomItem1, создать модель NewItem (Item, CustomItem) и пользоваться плюшками дополнительных полей? Аналогично сделать NewItem2. Как это будет выглядеть в штатной админке?
Разделять модель на кучу подмоделей только из-за того, что у кого-то есть одно свойство, а у другого нет — вот где смысла нет.
Есть как минимум пара рабочих схем для этого:
1) JSON
2) EAV
Первый вариант предпочтителен для postgresql. Можно достаточно гибко создавать индексы для конкретных полей внутри json'а. О производительности json vs eav легко можно найти в интернете.
Получается, если у меня есть один тип товара, мне надо для него хранить ВСЕ свойства всех категорий? Даже если в принципе их там не должно быть для конкретной категории? Это же тогда какого размера таблица будет.
Под словом JSON может пониматься очень много технологий. Развернете мысль?
Roman Kitaev: погуглить что? Формат данных или nosql? Впрочем, нашёл что-то похожее. Как я понимаю, под оба варианта придётся перепиливать пол админки для удобной правки атрибутов? И ещё вопрос - SQLite поддерживает jsonfield?