Тогда остаются только предложенные выше варианты. Не факт что единственные и правильные
Да еще появилась мысль о том, что можно попробовать избежать недостатков способа №2 с хранением вложений в editable и computed полях - а именно дублирование вложений.
Замутить можно например как нить так.
2 rich text поля (editable и computed) остаются. Вводится роль, флаг ... определяющая права пользователя на добавление\удаление вложений. Если права есть то доступно editable поле, иначе только computed.
Если права на добавление вложений есть - отрабатывать например событие QueryClose в котором делать следующее - копировать содержимое editable richtext поля в computed, editable поле удалять и создавать заново пустое, без вложений. таким образом вложения находятся в computed поле и в общем случае для изменений и удалений не доступны
Отрабатывать событие QueryOpen документа и проверять на то, что документ не новый и на наличие у открывающего пользователя роли, флага ... позволяющей добавлять и удалять вложение
--- Если такой роли, флага нет - просто открываем документ - вложения изменить и удалить возможности нет ибо они находятся в computed поле
--- Если такая роль есть - то отменяем открытие документа. Запоминаем его UNID где нить в переменной и делаем такой фокус:
содержимое computed richtext поля копируем в editable. computed rich text поле удаляем и создаем заново пустое. Документ сохраняем, находим его в базе по UNID и открываем на экране
Что в этом способе может быть плохо - заморочек с richtext становится еще больше (но имхо в принципе побороть можно), вероятность возникновения конфликтов увеличивается, поскольку документ при открытии пользователем имеющим права на добавление \ удаление вложений пересохраняется КАЖДЫЙ раз.
Что хорошо - количество вложений не дублируется.
А чтобы посоветовать что либо не хватает информации.
сколько в базе предполагается документов, насколько динамично количество документов увеличивается
сколько вложений в документе в среднем может быть
какой средний размер вложений
В общем решение за тобой.
Если что - спрашивай. Постараюсь помочь чем смогу