Основное приложение для работы с документами - добавление и удаление дополнительных атрибутов
У меня есть приложение с основными данными на основе документов с сущностью "Языки". Эта сущность имеет два постоянных атрибута "ключ" и "комментарии". Можно ли программно добавлять и удалять дополнительные атрибуты во время выполнения ("language_1", "language_2" и т. Д.)?
Моя цель состоит в том, чтобы избежать создания таблицы, скажем, с 50 атрибутами, когда пользователю нужно всего несколько (я не знаю заранее, сколько атрибутов понадобится).
Или, может быть, я должен выбрать другое решение?:)
РЕДАКТИРОВАТЬ
Описание случая: когда пользователь создает новый документ, таблица "Языки" имеет только 2 атрибута "ключ" и "комментарии". Во время работы с документом пользователь может в любое время добавить или удалить язык (и) - я имею в виду атрибуты (столбцы), а не строки в таблице.
Моя цель - иметь динамическую сущность, как показано ниже.
1 ответ
Да, это возможно. Но это, вероятно, не то, что вы хотите. При каждом открытии документа вам придется заново создавать измененную модель управляемых объектов для каждого документа во время выполнения.
Увидев ваш эскиз, я предлагаю немного другую модель. Между прочим, лучший стиль - использовать существительные в единственном числе для сущностей ("Раздел", а не "Разделы"), существительные во множественном числе для "Отношения ко многим" ("разделы", а не "relSection") и опускать имя сущности в его атрибутах ("комментарий", а не "раздел комментарий").
Используйте одну сущность для ваших постоянных атрибутов. Назовите это "Слово". Слово имеет атрибуты "комментарии" и "ключ", а также множество связей "переводы" и "разделы". На другом конце отношения "переводы" находится объект перевода, который имеет атрибуты "текст", а также, возможно, название языка (либо в виде строки, либо в качестве другого отношения).
Что-то вроде этого:
Для вашего первого примера у вас будет один экземпляр Word, 3 экземпляра Translation (.text = Home, Zuhause и Casa) и 3 экземпляра Language (.name = английский, немецкий, испанский). Когда вы добавите вторую строку, вы получите еще 1 экземпляр Word, еще 3 экземпляра Translation, но еще 0 языков. Вместо этого добавьте новые экземпляры Translation к существующим отношениям Language "translations".