Предположим, у меня есть модель БД, которая поддерживает значения Entity-Attribute. Если бы у меня было две записи, каждая из которых имела несколько записей EAV, например:
яблоко
- Размер: маленький, большой
- Цвет: зеленый, красный
Машина
- Тип: купе, седан
- Топливо: дизель, газ
Я мог бы легко сделать CSV для Apple:
product, size, color
apple, small, green
apple, small, red
apple, large, green
apple, large, red
Я мог бы сделать то же самое для автомобиля, тоже.
Проблема в том, что если я хочу, чтобы яблоко и машина были в одном CSV? Должны ли мои заголовки CSV выглядеть так:
product, size, color, type, fuel
Однако это не имеет смысла. Яблоки не имеют типа автомобиля или топлива. И машины не имеют размера и цвета (судя по приведенным мной примерам).
Должен ли я использовать что-то вроде этого:
product
apple, size:small, color:green
apple, size:small, color:red
apple, size:large, color:green
apple, size:large, color:red
car, type:coupe, fuel:diesel
car, type:coupe, fuel:gas
car, type:sedan, fuel:diesel
car, type:sedan, fuel:gas
Потребителю CSV просто нужно знать, что после первого столбца идут пары имя-значение, представляющие EAV.
Что такое хороший подход? Предложения?