ADN Open CIS
Сообщество программистов Autodesk в СНГ

13/06/2014

Обновлять или добавлять схему расширяемой области хранения (Extensible Storage)

Вопрос: Я выпустил релиз своей надстройки, где я использую схему.

Сейчас я работаю над новой версией и мне нужно расширить схему области для хранения дополнительных параметров.

Когда я добавляю данные, я могу создать новую схему и скопировать все данные в новую схему, или же я могу создать совсем другую схему.

Создание другой схемы кажется довольно простым способом. Есть ли у этого способа какие-либо недостатки? Ведь если я постоянно буду продолжать создавать новые схемы, то в конце концов это повлияет на размер файла и на производительность.

Ответ: Как я понял речь идет о схемах расширенной области хранения.

На самом деле не понятно, что вы имели ввиду, так как «я могу создать новую схему и скопировать все данные в новую схему» и «я могу создать совсем другую схему» это одно и тоже на мой взгляд.

Если вам нужно внести изменения, то единственно правильный способ – это создать новую схему.

Не существует способа модифицировать существующую схему. Я уже обсуждал это ранее в статье удаление и обновление схемы расширяемой области хранения (на англ.).

Пример создания новой схемы, заменяющей старую схему можно найти в примере UpgradeSchema из моего доклада на Autodesk University 2011.

И, напоследок, ссылка на список всех тем связанных с расширяемой областью хранения (на англ.)

Вопрос: Попробую объяснить, что я имел ввиду.

Я могу создать схему с 11 полями. В этом случае мне потребуется перенести данные из одной схемы в другую.

В тоже время я могу создать новую схему только с одним полем. В итоге у менять есть две схемы с общим количеством полей равным 11. Есть ли какие-то проблемы с тем, что один элемент будет иметь множество схем? Что если для дальнейшего развития моей надстройки потребуется создать 5-10-20 схем?

Или же если одна схема будет содержать кучу полей и мне нужно будет обновить только одно из них, то в итоге ведь все равно будет идти пере сохранение всех полей. Не повлияет ли это на производительность?

Ответ: А. Теперь понятно.

Оба варианта будут работать. Мне же кажется, что вариант с несколькими схемами гораздо сложнее.

Про производительность ничего не скажу. Думаю, вы единственный, кто может провести такой тестJ Если сделаете – сообщите об этом.

 

Источник: http://thebuildingcoder.typepad.com/blog/2014/05/properties-in-dwf-ifc-tables-and-extensible-storage.html#5

Обсуждение: http://adn-cis.org/forum/index.php?topic=801

Опубликовано 13.06.2014