Предположим, у меня есть класс под названием Expense
. Я могу добавить различные виды связанных с автомобилем расходов - расходы на танки, расходы на ремонт, билеты и т. Д. Некоторые свойства расходов одинаковы для всех типов, таких как стоимость, дата и т. Д., Но есть некоторые отличия. Например: когда я подпитывал свой автомобиль, я хочу сохранить информацию, как я полностью заполнил мой танк или нет. Однако, когда я сохраняю ремонт, я хочу сохранить другую информацию.Механизм гибких свойств
Проблема в том, как создать какой-то механизм flxible properties?
То, что я придумал, состоит в том, чтобы иметь две таблицы: expenses
и expenses_properties
. В таблице expenses
я мог бы хранить все основные, общие данные и expenses_properties
будет иметь следующую структуру:
| Id | PropertyName | PropertyValue | ExpenseId
| 1 | IsFull | "true" | 1
| 2 | Stuff | "2016-10-02" | 1
Проблема заключается в том, для PropertyValue
колонка я должен был бы использовать определенный тип, как, например nvarchar
. В этом случае я не смог бы правильно сортировать эти значения (например, по дате)? Или, может быть, я бы это сделал?
Я думаю, что должен быть лучший способ сделать это, используя подход Entity Framework Code First.
Если вы знаете официальный термин для этого, * Значение атрибута сущности *, вы можете продолжить исследование. Я уверен, что это заставит вас думать дважды. –
@Gert, большое спасибо! Исследования действительно заставили меня думать дважды! –