Нужна помощь в дизайне отношений один ко многим - PullRequest
2 голосов
/ 10 августа 2010

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

Мои текущие структуры таблиц выглядят так:

TAB_FORM
--------
ID INT(10) NOT NULL,
...

TAB_QUESTION
------------
ID INT(10) NOT NULL,
...

TAB_FORM_QUESTION
-----------------
ID INT(10) NOT NULL,
FORMID INT(10) NOT NULL,
QUESTIONID INT(10) NOT NULL,
NEWATTRIBUTE1 VARCHAR(20),
NEWATTRIBUTE2 VARCHAR(20),
...

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

Могу ли я просто скопировать все поля из TAB_QUESTION в TAB_FORM_QUESTION, или есть другое решение? Спасибо.

1 Ответ

0 голосов
/ 10 августа 2010

Я думаю, что мне нужно скопировать все поля из TAB_QUESTION в TAB_FORM_QUESTION, затем я могу создать новый класс EmbeddableQuestion, который сопоставляется с этими полями и встраивает EmbeddableQuestion в класс FormQuestion. EmbeddableQuestion может расширить вопрос, но я не думаю, что это необходимо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...