Обновлять или добавлять схему расширяемой области хранения (Extensible Storage)
Вопрос: Я выпустил релиз своей надстройки, где я использую схему.
Сейчас я работаю над новой версией и мне нужно расширить схему области для хранения дополнительных параметров.
Когда я добавляю данные, я могу создать новую схему и скопировать все данные в новую схему, или же я могу создать совсем другую схему.
Создание другой схемы кажется довольно простым способом. Есть ли у этого способа какие-либо недостатки? Ведь если я постоянно буду продолжать создавать новые схемы, то в конце концов это повлияет на размер файла и на производительность.
Ответ: Как я понял речь идет о схемах расширенной области хранения.
На самом деле не понятно, что вы имели ввиду, так как «я могу создать новую схему и скопировать все данные в новую схему» и «я могу создать совсем другую схему» это одно и тоже на мой взгляд.
Если вам нужно внести изменения, то единственно правильный способ – это создать новую схему.
Не существует способа модифицировать существующую схему. Я уже обсуждал это ранее в статье удаление и обновление схемы расширяемой области хранения (на англ.).
Пример создания новой схемы, заменяющей старую схему можно найти в примере UpgradeSchema из моего доклада на Autodesk University 2011.
И, напоследок, ссылка на список всех тем связанных с расширяемой областью хранения (на англ.)
Вопрос: Попробую объяснить, что я имел ввиду.
Я могу создать схему с 11 полями. В этом случае мне потребуется перенести данные из одной схемы в другую.
В тоже время я могу создать новую схему только с одним полем. В итоге у менять есть две схемы с общим количеством полей равным 11. Есть ли какие-то проблемы с тем, что один элемент будет иметь множество схем? Что если для дальнейшего развития моей надстройки потребуется создать 5-10-20 схем?
Или же если одна схема будет содержать кучу полей и мне нужно будет обновить только одно из них, то в итоге ведь все равно будет идти пере сохранение всех полей. Не повлияет ли это на производительность?
Ответ: А. Теперь понятно.
Оба варианта будут работать. Мне же кажется, что вариант с несколькими схемами гораздо сложнее.
Про производительность ничего не скажу. Думаю, вы единственный, кто может провести такой тестJ Если сделаете – сообщите об этом.
Обсуждение: http://adn-cis.org/forum/index.php?topic=801
Опубликовано 13.06.2014