Мне нравится чистый реляционный дизайн, но иногда требуется метод хранения данных Entity / Value.
Особенно там, где пользователю необходимо часто создавать новый тип данных.
Я видел в некоторых коммерческих программах, что они динамически создают стандартные таблицы, а не используют таблицы EV.
Очевидно, что это не решение для всех и может работать, только если вы ограничиваете типы данных, которые вы можете определить.
Тем не менее, он имеет следующие преимущества: -
- Модель четко определена - вам не нужно опрашивать схему, чтобы понять схему.
- Вы получаете более высокую производительность, поскольку таблицы содержат только данные для этого типа данных, поэтому нет необходимости запрашивать явно не связанные строки.
- Аналогично, индексы содержат значения только для того типа данных, который определена в таблице, что снова повышает производительность. (то есть в модели EV, если индекс имеет значение valueid, entityid - вы будете искать значения для сущностей, которые не имеют никакого отношения к вашему запросу - если вы не разбили индекс на части).
Так что для меня это звучит замечательно, но пропустите эту идею через DBA, и вы получите много сосущих зубов.
Это хорошая идея, какие подводные камни, и кто-нибудь пытался это сделать?